2012-02-15 2 views
1

Я пытаюсь перенаправить один из моих доменов к другому с помощью .htaccess:.htaccess: Аутентификация и перенаправлять

RewriteEngine on 
RewriteRule !^admin($|/) http://mydomain.com%{REQUEST_URI} [L,R=301] 

Как вы можете видеть, я не хочу, чтобы перенаправить данную папку (» admin "), поскольку в этом каталоге есть контент.

Проблема заключается в том, что у меня есть еще один .htaccess в этой директории с этим кодом:

AuthName "You must login" 
AuthUserFile /path/to/.htpasswd 
AuthType Basic 
require valid-user 

Когда я посещаю без перенаправления папки в браузере, он перенаправляет на страницу 401.html на MYDOMAIN. ком.

Как исправить это? Я хочу перенаправить все на mydomain.com, кроме каталога «admin», для которого требуется auth.

ответ

0

Ищите R=401 или ErrorDocument 401 в конфигурационных файлах для вашего первого домена. Что-то настраивает пользовательскую страницу 401, которая затем соответствует вашему правилу перезаписи и перенаправляет браузер на mydomain.com.

0

Ловушка для неосторожного заключается в том, что ваш браузер, вероятно, кэширует ваши перенаправления во время тестирования. Поэтому при тестировании удалите 301 из R = 301, чтобы оставить флаг R самостоятельно.

Таким образом:

RewriteRule !^admin($|/) http://example.com%{REQUEST_URI} [L,R] 

После того, как вы счастливы с работой вашего Htaccess перенаправить затем изменить флаг R к R = 301 (будучи постоянным редирект).

Если вы используете R = 301, очистите кеш браузера.

Смежные вопросы