У меня есть этот файл .htaccess (это был тот, который был в laravel. Единственные изменения, которые я сделал, - это принудительное использование https в URL-адресе и коде, показанном ниже:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
...
RewriteEngine On
...
# This block works perfectly
RewriteCond %{REQUEST_URI} ^(/phpmyadmin.*)$
RewriteCond %{REMOTE_ADDR} !^xxx\.xxx\.xxx\.xxx$
RewriteRule ^(.*)$ /404 [R=301,L]
# This block doesnt
RewriteCond %{REQUEST_URI} ^(/processor.*)$
RewriteCond %{REMOTE_ADDR} !^xxx\.xxx\.xxx\.xxx$
RewriteRule ^(.*)$ /404 [R=301,L]
</IfModule>
Я хочу добиться того, чтобы некоторые из моих страниц были заблокированы по IP. Я добился этого с помощью первого блока выше.
Второй блок не работает на блокировку всех IP-адресов, кроме указанного, когда он ТОЧНО такой же. Он по-прежнему доступен для публики.
Вы разместили "блокирующие" директивы не в том месте - их нужно удалить перед фронт-контроллер Laravel (который, похоже, вы пропустили), который предположительно предшествует этим директивам.
Первый блок «работает», потому что URL-адреса формы /phpmyadmin
предположительно сопоставляются с физическими файлами, тогда как /processor
URL-адреса не являются (т. Е. «Виртуальными»). Предположительно, вы маршрутизируете все «виртуальные» URL-адреса через Laravel, поэтому любые последующие директивы mod_rewrite просто игнорируются. (?)