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

htaccess переписывание URL для 1 папки

Мой файл .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.

Я подозреваю, что модули авторизации запускаются перед модулем перезаписи, поэтому у вас должен быть действующий пользователь до обработки любой из перезаписей.

Что вы получите, если предоставите действительное имя пользователя и пароль?