mod_rewrite не работает из-за mod_auth?

Должно быть, я обнаружил ошибку в Apache! Потому что у меня самая странная проблема с моим веб-хостом. Я не могу получить доступ к папке с именем admin. Он работает на одном виртуальном хосте, но не на другом. (Та же учетная запись хостинга)

/.htaccess

<IfModule mod_rewrite.c>
  Options +FollowSymLinks
  RewriteEngine on
  RewriteBase /

  # No logic for resolved paths
  RewriteCond %{REQUEST_FILENAME} -d [OR]
  RewriteCond %{REQUEST_FILENAME} -f [OR]
  RewriteCond %{REQUEST_FILENAME} -l
  RewriteRule ^ - [L]

  RewriteRule .* index.php [L]
</IfModule>

/admin/.htaccess:

AuthType Basic
AuthName "Restricted Area"
AuthUserFile /home/user/domains/mydomain.com/public_html/admin/.htpasswd
Require valid-user

Разрешение http://www.mydomain.com/admin/index.php Я получаю 404 не найден. Если я удалю файл admin /.htaccess, страница разрешится. Что с этим?

2 ответа

Решение

Проблема связана с параметром ErrorDocument. Добавление следующей строки в admin/.htaccess решает проблему

ErrorDocument 401 "Access Denied"

Смотрите мои Советы по отладке.htaccess правил переписывания. Если только ою не переопределил значения по умолчанию с одним из RewriteOptions Inherit* директивы, то потому что /admin/.htaccess существует, тогда родительский не будет выполнен. Либо добавить

RewriteOptions Inherit

в этот файл или просто повторите те переписывания, которые вам нужны в файле доступа администратора.

Другие вопросы по тегам