Apache - Возврат 404 для всего execept выбран

добавьте к действию перезапуска/Users/foo/foo_server.sh и конфигурации изменения:

 if timestamp > 1 minute then alert
 if timestamp > 1 minute then
       exec "/Users/foo/foo_server.sh restart"
0
задан 13 April 2017 в 15:14
1 ответ

Хорошо, сначала позвольте мне сказать, что вся ваша предпосылка ошибочна: существует много других способов, помимо наличия / wp-admin для определения что вы используете Wordpress. Вы пытаетесь использовать Безопасность через Неизвестность , и, поскольку вы не скрываете все, вы не делаете этого особенно изящно.


Если оставить в стороне эти врожденные проблемы, быстро взгляните на ваш RewriteRule кажется неправильным.
Согласно документации Apache :

Что сопоставляется?

В контексте VirtualHost шаблон изначально будет сопоставляться с частью URL-адреса после имени хоста и порта и перед строкой запроса (например, "/app1/index.html").

В контексте каталога и htaccess шаблон будет изначально сопоставляться с путем файловой системы после удаления префикса, который привел сервер к текущему правилу RewriteRule (например," app1 / index.html "или" index.html "в зависимости от того, где определены директивы).

Проще говоря, это означает, что вам нужно больше пути к wp-admin в вашем правиле, если вы хотите сделать это в Контекст каталога (например, ^ domain.com / wp-admin ($ | /) ). Простым / наивным решением было бы изменить ваше регулярное выражение на ^. * wp-admin ($ | /) и просто сопоставьте все , содержащее wp-admin (что также является хорошим способом проверить, что само правило анализируется) .

Если вы настаиваете на использовании этого пути «безопасности», я бы посоветовал внести это изменение в контекст VirtualHost (или файл /wp-admin/.htaccess ). of в контексте Каталога для всего вашего сервера. Его проще писать и надежнее. (Ваше текущее решение ломается, если кто-то на вашем сервере НЕ хочет, чтобы его страница администратора WordPress была заблокирована (и, вероятно, многие люди этого не сделают - например, кто-то с динамическим IP-адресом). Это делается в каждом VirtualHost или файл .htaccess позволяет вам держать определенные сайты «разблокированными».)

хотя я бы посоветовал внести это изменение в контекст VirtualHost (или файл /wp-admin/.htaccess ) вместо контекста Directory для всего вашего сервера . Его проще писать и надежнее. (Ваше текущее решение ломается, если кто-то на вашем сервере НЕ хочет, чтобы его страница администратора wordpress была заблокирована (и, вероятно, многие люди этого не сделают - например, кто-то с динамическим IP-адресом). Выполнение этого в каждом VirtualHost или файл .htaccess позволяет вам держать определенные сайты «разблокированными».)

хотя я бы посоветовал внести это изменение в контекст VirtualHost (или файл /wp-admin/.htaccess ) вместо контекста Directory для всего вашего сервера . Его проще писать и надежнее. (Ваше текущее решение ломается, если кто-то на вашем сервере НЕ хочет, чтобы его страница администратора wordpress была заблокирована (и, вероятно, многие люди этого не сделают - например, кто-то с динамическим IP-адресом). Выполнение этого в каждом VirtualHost или файл .htaccess позволяет вам держать определенные сайты «разблокированными».)

1
ответ дан 4 December 2019 в 18:01

Теги

Похожие вопросы