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
в этот файл или просто повторите те переписывания, которые вам нужны в файле доступа администратора.