2015-09-25 3 views
1

Есть файл .htaccess, который работает правильно со следующимHTTPS перенаправление не работает

Redirect 301 /secure/test/ http://ww2.example.com/secure/test/ 
Redirect 301 /test/ http://ww2.example.com/test/ 
Redirect 301 /submission/ http://ww2.example.com/submission/ 

Это будет счастливо перенаправлять:

http://example.com/secure/test/login.aspx 

Однако, если кто-то приходит на

https://example.com/secure/test/login.aspx 

Это не работает, как я также перенаправляю весь трафик https, чтобы следовать правилам выше?

+0

Является ли ваш 'DocumentRoot' для' https' таким же, как 'http'? – anubhava

ответ

0

Вам нужно будет изменить свои переадресации mod_alias, чтобы вместо этого использовать mod_rewrite.

Например, в .htaccess:

RewriteEngine 

RewriteCond %{SERVER_PROTOCOL} ^http(s?) [NC] 
RewriteRule ^(secure/test/.*) http%1://ww2.example.com/$1 [R=302,L] 

Это перенаправляет http к http и https к https. (Вы уверены, что вы не всегда хотят, чтобы перенаправить https вместо?)

%1 обратная ссылка соответствует s в SERVER_PROTOCOL (если таковой имеется).

Очистить кеш браузера перед тестированием (переадресация 301) и изменить 302 (временный) перенаправление на 301 (постоянный), если вы уверены, что он работает нормально.

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