First of all, I need to revise my statement from above. .htaccess files are included in the backup except /var/www/webN/web/.htaccess. Sorry for that.
I just verifed your point with my setup:
All .no_delete files are owned by root and have 400 permissions
All .antivirus.rc files etc. except .vacation.cache are owned by root and have 644 permissions
All /var/www/webN/web/.htaccess files are owned by root and have 644 permissions
I've got one .htaccess two directory levels further down with the same permissions and this one is included in the backup as well. The one from /var/www/webN/web/stats/ is owned by the respective user and has 664 permissions. They are also included in the backup.
So, permissions shouldn't be the problem, should they?
Anyway, I have now changed the appropriate line in the backup script to
exec("cd $web_pfad; $zip -r $tmp_dir/web".$web_id."_web.zip .htaccess *");
This seems to work whereas
exec("cd $web_pfad; $zip -r $tmp_dir/web".$web_id."_web.zip .* *");
gave me all sorts of errors when unzipping the zip file.