RewriteRule htaccess, если файл существует
Я хочу использовать htaccess, чтобы проверить, существует ли файл с именем offline.txt в том же каталоге, что и файл htaccess, если он существует, выполните:
RewriteRule ^.*$ /websiteOffline.php [L]
а также есть исключение для определенного диапазона IP-адресов
Идея состоит в том, что если я хочу отключить весь свой сайт для обслуживания, я могу просто поместить файл с именем offline.txt, и это сделает это и позволит определенным IP-адресам обойти это условие.
Любые предложения о том, как это может быть достигнуто?
Спасибо
я пробовал следующий код, но, похоже, не работает:
RewriteEngine on
RewriteCond /offline.txt -f
RewriteRule ^(.*) /websiteOffline.php [L]
Обновить
Просто использовал предложение Джона как следующие:
RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}/offline.txt -f
RewriteRule ^(.*) /websiteOffline.php [L]
Небольшая проблема с этим заключается в том, что файл websiteOffline.php находится в папке, где применяется перезаписываемая секунда, поэтому он не может отобразить этот файл. какие-либо предложения
1 ответ
Вы не можете использовать относительное местоположение для -f
тестовое задание. Вам нужно будет указать полный путь:
RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}/folder/offline.txt -f
RewriteCond %{REQUEST_URI} !/websiteOffline.php
RewriteCond %{REMOTE_ADDR} !^12\.34\.56\.78$
RewriteRule ^(.*) /websiteOffline.php [L]
где /folder/
путь, по которому находится ваш файл htaccess.
Здесь, если ваш IP-адрес 12.34.56.78
и вы попытаетесь получить доступ к папке, она не будет перенаправлять вас.