Apache htaccess RewriteCond и RewriteRule для возврата 404 на основе белого списка - PullRequest
0 голосов
/ 03 июля 2019

Я пытаюсь создать белый список URI, которые доступны на моем сайте Wordpress.Ниже у меня есть только /golf, но мне понадобится /wp-admin и пользовательская страница входа /crmpicco-login - что-то вроде (golf|wp-admin|crmpicco-login)?

Мой Wordpress .htaccess выглядит так:

ErrorDocument 404 /404.html

# BEGIN WordPress
<IfModule mod_rewrite.c>

    RewriteEngine On

    # if the request uri is not /golf
    RewriteCond %{REQUEST_URI} !^/golf

    # response 404 error
    RewriteRule ^ - [R=404]

    # this works!
    #RewriteRule ^/?crmpicco$ - [R=404]

</IfModule>
# END WordPress

Когда я пытаюсь получить доступ к любой странице, появляется сообщение об ошибке:

Не найдено

Запрошенный URL / гольф не найден на этом сервере.

Кроме того, при попытке использовать ErrorDocument для обработки запроса произошла ошибка 404 Not Found.

Это то, что я вижу в своем журнале Apache, поэтому я предполагаю, что RewriteRuleневерно настроен:

[ср. 03 июля 11: 35: 05.964404 2019] [core: error] [pid 9673] [клиент 127.0.0.1:53894] AH00124: запрос превысил ограничение 10 внутренних перенаправленийиз-за вероятной ошибки конфигурации.Используйте LimitInternalRecursion, чтобы увеличить лимит, если это необходимо.Используйте 'LogLevel debug', чтобы получить обратную трассировку.

Закомментированный RewriteRule для обслуживания 404 работ, но RewriteCond, за которым следует RewriteRule, не делает.

1 Ответ

0 голосов
/ 03 июля 2019

Может быть, попробуйте только в RewriteRule.

RewriteRule ^/?(golf|wp-admin|crmpicco-login)(/.*)?$ - [R=404]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...