Задать вопрос
@ZmeY

Apache авторизация + mod_rewrite — почему не происходит редирект?

Добрый день!

есть сайт, доменное имя, для примера, domain.com

сайт доступен по протоколам http и https, по доменным именам domain.com и www.domain.com

есть административная директория, /admin/

нужно сделать к ней доступ ТОЛЬКО по протоколу https и ТОЛЬКО по имени www.domain.com
при обращении по протоколу http или по имени domain.com - нужно редиректить на правильный вариант:
domain.com/admin -> https://www.domain.com/admin/

на сервере в директорию admin кладу файл .htaccess такого содержания (файл с паролями также присутствует):

##########
Options FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]
RewriteRule ^(.*)$ https://www.domain.com/admin/$1 [R=301,L]

AuthUserFile /home/www/domain.com/www/admin/.htpasswd
AuthName "Enter password for access:"
AuthType Basic
require valid-user
##########

пробую зайти по адресу domain.com/admin (пробовал Google Chrome) - вместо ожидаемого редиректа получаю окно ввода пароля, после ввода пароля - редирект на нужный адрес, вновь окно ввода пароля (т.к. браузер считает ресурсы разными), повторный ввод пароля

в общем суть вопроса: почему не произошел редирект на нужный адрес СРАЗУ, до апачевской авторизации?
  • Вопрос задан
  • 2287 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
benbor
@benbor
Помог ответ - не забудь лайкнуть
Предположу, что .htaccess работает для каждой директории, и раз уж в корне у Вас есть auth* директивы, то он их и юзает. Попробуйте положить auth в /admin/.htaccess
Ответ написан
Комментировать
@ZmeY Автор вопроса
2 benbor

именно там и лежит, все в одном файле .htaccess в директории admin

на сервере в директорию admin кладу файл .htaccess такого содержания (файл с паролями также присутствует)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы