2014-09-30 3 views
0

여러 솔루션을 사용해 보았는데 그 중 아무 것도 작동하지 않는 것으로 나타났습니다. 단지 리디렉션 오류가 발생합니다. HTTPS : HTTP : // www.domain.com.htaccess를 사용하여 http 트래픽을 모두 https 및 www.domain.com으로 리디렉션하는 방법

현재처럼 시작 주소를 모두 이동해야

http://domain.com 
http://www.domain.com 
https://domain.com 
http://alias.com 
http://www.alias.com 
https://alias.com 

:

는 내가 뭘하려고에 대한 HTTPS로 모든 트래픽을 리디렉션 할 수 있습니다 : // www는 https로 리디렉션되지 않습니다. 여기

당신은 www를 제거해야

RewriteEngine On 
RewriteBase/

# Fix Apache internal dummy connections from breaking [(site_url)] cache 
RewriteCond %{HTTP_USER_AGENT} ^.*internal\ dummy\ connection.*$ [NC] 
RewriteRule .* - [F,L] 

RewriteCond %{HTTP_HOST} . 
RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} ^mydomain\.com [NC] 
RewriteRule ^(.*)$ https://www.mydomain.com/$1 [R=301,L] 

# Exclude /assets and /manager directories from rewrite rules 
RewriteRule ^(manager|assets) - [L] 

# For Friendly URLs 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 

RewriteCond %{HTTP_HOST} ^myalias.ca$ [OR] 
RewriteCond %{HTTP_HOST} ^www.myalias.ca$ 
RewriteRule ^/?$ "https\:\/\/mydomain\.com" [R=301,L] 

RewriteCond %{HTTP_HOST} ^myotheralias.ca$ [OR] 
RewriteCond %{HTTP_HOST} ^www.myotheralias.ca$ 
RewriteRule ^/?$ "https\:\/\/mydomain\.com" [R=301,L] 
+0

모든 요청을 https://mydomain.com으로 리디렉션해야하는 경우 왜 HTTP_HOST가 필요합니까? – MrTux

답변

0

하단에 리디렉션 htaccess로 파일을이다 :

RewriteCond %{HTTP_HOST} ^myalias.ca$ [OR] 
RewriteCond %{HTTP_HOST} ^www.myalias.ca$ 
RewriteRule ^/?$ "https\:\/\/mydomain\.com" [R=301,L] 

RewriteCond %{HTTP_HOST} ^myotheralias.ca$ [OR] 
RewriteCond %{HTTP_HOST} ^www.myotheralias.ca$ 
RewriteRule ^/?$ "https\:\/\/mydomain\.com" [R=301,L] 

이 그들을 필요하지 마십시오 , 당신은 상단에 하나의 리디렉션을 필요 대체 :

RewriteCond %{HTTP_HOST} . 
RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} ^mydomain\.com [NC] 
RewriteRule ^(.*)$ https://www.mydomain.com/$1 [R=301,L] 

,536로
RewriteCond %{HTTPS} off [OR] 
RewriteCond %{HTTP_HOST} !^www\.mydomain\.com$ [NC] 
RewriteRule ^(.*)$ https://www.mydomain.com/$1 [L,R=301] 

이렇게하면 모든 리디렉션을 처리해야합니다.

+0

아니요 - 여전히 리디렉션 루프를 제공합니다. 비록 당신이 제공 한 세 줄의 모든 줄을 지우더라도 [ –

+0

@SeanKimball에 htaccess 파일에있는 것 이외의 다른 것이 리디렉션되고 있습니다. 규칙은 HTTPS가 꺼져 있거나 도메인이 www.mydomain.com이 아닌 경우에만 리디렉션됩니다. 내 아파치 테스트 서버에서, 이것은 루프를 발생시키지 않는다. –

관련 문제