2017-12-11 1 views
1

같은 도메인을 갖고 싶은 여러 도메인이 있습니다. 도메인 example.com을 가져 가자..htacces는 https : // www .;로 리디렉션됩니다. 하나의 리디렉션 대신

항상 https://www.[mydomain]으로 리디렉션하고 싶습니다.

이 경우 : https://www.example.com. https://example.com를 들어

RewriteCond %{HTTPS} off 
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

http://www.example.com 리디렉션 https://www.example.com에 직접입니다 :이 코드를 가지고,

https://example.com 

http://www.example.com 

http://example.com 

https://www.example.com 

에 이렇게하려면 :

나는 리디렉션해야합니다.

그러나 대한 http://example.com 재 대신 https://www.example.com에 직접가는, https://example.com에 다음 https://www.example.com로 이동합니다. 두 가지 리디렉션이 있습니다.

왜 그럴까요? 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

1

여기에는 2 가지 옵션이 있습니다.

사용하십시오이 같은 두 리디렉션에 대한 하나의 규칙이에

RewriteCond %{HTTP_HOST} !^www\. [NC,OR] 
RewriteCond %{HTTPS} !on 
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC] 
RewriteRule^https://www.%1%{REQUEST_URI} [R=301,L,NE] 

또는 규칙의 다른 변경 순서 : 당신이 당신의 브라우저 캐시 또는 사용을 취소 기억 가입시 선택하신 옵션

RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteRule^https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE] 

RewriteCond %{HTTPS} off 
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE] 

테스트를위한 새로운 브라우저.

+1

안녕하세요, 감사합니다. "더 나은"것이 무엇입니까? – David

+0

나는 하나의 규칙이 있기 때문에 처음에는 이론을 선호하기 때문에 이론적으로는'mod_rewrite'가 더 빨리 실행합니다. – anubhava

관련 문제