Мой файл .htaccess отлично работает для всего, кроме одной конкретной папки. В результате, http://www.mydomain.com/administration/index.php
неожиданно переходит на страницу ошибки 401 вместо загрузки index.php
из папки администрирования.
Итак, для папки администрирования я хочу:
1) всегда заменяйте http на https для папки администрирования (для других папок последняя часть .htaccess работает нормально).
2) не перенаправлять ссылки, если они идут в папку администрирования.
3) Все правила после 1) и 2) аннулируются для папки администрирования.
Я пробовал добавить 2) и 3) в .htaccess. Итак, теперь мой файл .htaccess выглядит так:
#adds www - always, for any url, for any folder
RewriteCond %{HTTP_HOST} !^www.mydomain.com$
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R=301,L]
#special rules for administration folder only - set https if not https
RewriteCond %{REQUEST_URI} ^/administration
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R,L=301]
#all requests to administration folder should stop here
RewriteCond %{REQUEST_URI} ^/administration
RewriteRule ^ - [L]
#some rules below - not for administration folder
Но если я наберу, он перейдет на страницу ошибки 401 mydomain.com/administration/index.php
в любом случае, хотя я бы хотел, чтобы это пошло на https://www.mydomain.com/administration/index.php
. Все остальное работает отлично.
Если я удалю .htaccess, он перейдет прямо в любой из
http://www.mydomain.com/administration/index.php
https://www.mydomain.com/administration/index.php
без проблем.
Заранее спасибо.
401 ответ означает Authorization required
и предложит вашему браузеру запросить имя пользователя и пароль. Они контролируются не mod_rewrite, а одним из модули авторизации.
Вы должны иметь Auth*
директивы либо в вашем файле .htaccess, либо в основной конфигурации Apache.
Я подозреваю, что модули авторизации запускаются перед модулем перезаписи, поэтому у вас должен быть действующий пользователь до обработки любой из перезаписей.
Что вы получите, если предоставите действительное имя пользователя и пароль?