Назад | Перейти на главную страницу

Как разрешить доступ к каталогу в apache, который на самом деле соответствует RewriteRule?

У нас есть сервер с большим количеством доменов. Каждый домен будет иметь одну или несколько из следующих административных областей, которые мы хотим защитить по IP:

Это фрагмент из конфигурации Apache, которую мы используем для защиты всего этого на всех сайтах:

<Directory ~ "^/home/user/apache/[^/]+/public/((blog/)?wp\-)?admin">
  AllowOverride All
  Order Deny,Allow
  Deny from all
  Allow from 123.45.67.89 23.45.67.89 34.56.78.90
</Directory>

Это ограничивает возможность просмотра любой из вышеуказанных папок только с этих IP-адресов. Для большинства сайтов и блогов это работает отлично. Однако на одном небольшом сайте это не работает.

Разница я считать может быть, что admin папки на этом сайте фактически не существует, а вместо этого RewriteRule сопоставляется для обслуживания этой страницы со страницы индекса. Что странно, так это то, что это блокирует /admin и дает 403 ошибка, но это не позволяет IP-адреса, перечисленные в Allow from правило.

Почему каталог совпадает и запрещает, но не разрешает? Это ожидаемое поведение? Как я могу это исправить?

Для местоположений, не являющихся каталогами, используйте <Location> вместо того <Directory>.