Исключая страницу обслуживания в определенном каталоге

В настоящее время я использую этот код в своем файле.htaccess для запуска страницы обслуживания моего сайта.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}/maintenance.html -f
RewriteCond %{DOCUMENT_ROOT}/maintenance.enable -f
RewriteCond %{SCRIPT_FILENAME} !maintenance.html
RewriteRule ^.*$ /maintenance.html [R=503,L]
ErrorDocument 503 /maintenance.html
Header Set Cache-Control "max-age=0, no-store"
</IfModule>

Как сделать так, чтобы я мог получить доступ к каталогу, над которым я буду работать, а не только к своему IP-адресу, если мой друг захочет получить к нему доступ?

Я немного искал, но пока ничего не нашел

ура

Том

1 ответ

Я бы сказал, что вы можете просто внедрить некоторые правила исключений до обработки режима обслуживания:

<IfModule mod_rewrite.c>
RewriteEngine On

# immediately end all rewriting for specific IPV4 addresses
RewriteCond %{REMOTE_ADDR} ^123\.123\.123\.123$ [OR]
RewriteCond %{REMOTE_ADDR} ^321\.321\.321\.321$
RewriteRule ^ - [END]

# for everyone else: check for maintenance mode
RewriteCond %{DOCUMENT_ROOT}/maintenance.html -f
RewriteCond %{DOCUMENT_ROOT}/maintenance.enable -f
RewriteCond %{SCRIPT_FILENAME} !maintenance.html
RewriteRule ^.*$ /maintenance.html [R=503,L]
ErrorDocument 503 /maintenance.html
Header Set Cache-Control "max-age=0, no-store"
</IfModule>

В качестве альтернативы вы можете добавить отрицательные условия в качестве дополнительных условий в логику перезаписи режима обслуживания. Но я думаю, что выше легче читать и поддерживать.

Другие вопросы по тегам