RewriteRules в .htaccess не перенаправляет для веб-сайта Drupal на cPanel - PullRequest
0 голосов
/ 17 февраля 2020

Обратите внимание на следующее:

RewriteCond %{REMOTE_ADDR} !^1\.2\.3\.4
RewriteCond %{REMOTE_ADDR} !^1\.2\.3\.5
RewriteCond %{QUERY_STRING} ^q=user
RewriteRule .* /denied/from/this/ip [F,L]

RewriteCond %{REMOTE_ADDR} !^1\.2\.3\.4
RewriteCond %{REMOTE_ADDR} !^1\.2\.3\.5
RewriteCond %{REQUEST_URI} ^/user
RewriteRule .* /denied/from/this/ip [F,L]

Это файл htaccess в системе cPanel, работающей под управлением Ubuntu, Apache 2.4.41, и в системе на основе PHP / Drupal. Сценарий в основном говорит, что если вы обращаетесь к пользователю / пользователю или пользователю по приведенной выше строке запроса и не используете один из этих IP-адресов, то вам запрещено.

В моей автономной системе Ubuntu оба они работают безупречно, и мы получаем стандартную «Запрещенную» страницу. Однако в cPanel первый блок правил, использующий QUERY_STRING, возвращается на домашнюю страницу, тогда как второй блок правил просто продолжает и загружает пользовательскую «папку».

Я затрудняюсь объяснить разницу в двух вариантах поведения.

Если я добавлю R = 302 к концу флагов RewriteRule, то поймаю цикл Apache, сообщающий, что страница была перемещена, нажмите «здесь» , где здесь возвращает меня к "/user".

Так что я знаю, что RewriteCond совпадают, и, конечно, мы получаем 403 в журнале доступа apache. Это почти как игнорирование перенаправления RewriteRule или игнорирование запрещенного флага, или обоих.

...