2011-02-01 4 views
0

까지 시도했습니다!Isapi Rewrite : www에서 non-www로 http에서 https로 동시에

이 :

RewriteCond %{HTTP_HOST} ^www\.(.*) 
RewriteRule ^.*$ https://%1/$1 [R=301,L] 
내가 beggining에서 HTTP를 넣지 않은 경우에만

작품

그 일을 어떻게해야합니까 : HTTP는 WWW이있을 경우 HTTPS 로 리디렉션이있는 경우 을 www가 아닌 ​​ 및 당연히 모두 동시에 모든 후 하위 폴더 및 쿼리

http://www.domain.com -> https://domain.com 
www.domain.com --> https://domain.com 
http://domain.com --> https://domain.com 

에로 리디렉션!

답변

2

당신도 혹시이 작업을 받았어

https://www.domain.com -> https://domain.com 

을한다고 가정? 테스트 https 사이트에서이 문제를 다시 확인하는 데 문제가 있습니다.

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

이 캡처 RewriteRule의 괄호를 추가 한편

, 나는 몇 가지를 참조 할, 그래서 대신에 이것을 시도 (이 당신이 사용하고있는 것 같습니다 isapi_rewrite의 V3를 가정) 1 달러에 대한 URL.

$ 1 캡처 시작 부분에 하나가 있으므로 % 1 $ 1 사이의 슬래시는 필요하지 않습니다.

대/소문자를 구분하지 않으려면 NC를 사용하고 R 규칙은 최종 규칙이므로 마지막에 L이 필요하지 않습니다.

편집 내가/업데이트 위에서 내 원래의 대답에 차 문제의 몇 가지를 명확히하기 위해,이 대답을 재 방문했다. 위의 주요 솔루션은 캡처를 수행 할 괄호를 추가하는 것으로 변경되지 않습니다. 원래

는 다음 $ 1 캡처의 시작 하나가 이후

는 그 다음 % 1 $ 1 사이의 슬래시는 필요하지 않습니다.

이것은 실제로 규칙이 어디에 있으며, RewriteBase 문이 있는지 여부에 따라 다릅니다. 일반적인 공유 호스트 구성에는 규칙에 선행 슬래시가 없으므로 슬래시가 필요합니다. 확실하지 않은 경우 시도해 볼 수 있습니다. 원래

는 :

나는 대소 문자 구분을위한 NC를 사용, 그리고 마지막의 L가 필요하지 않습니다 있도록 R 규칙은, 최종 규칙입니다.

성능면에서 R과 함께 L을 갖는 것이 유용하다는 것이 밝혀졌습니다. [NC,R=301,L].사실이 질문 년 전에 헬리 테크에서이에게 물어 봤다, 그러나 잊혀지했다 :

... 우리가 301 리디렉션 규칙에 [L]를 사용하는 이유 : 대한 반응에서
http://www.helicontech.com/forum/14826-Does_Redirect_need_Last.html
을 리디렉션이 발생하지 않는 것이므로 입니다. 비록 당신이 [L]을 가지고 있지 않다면, 규칙이 일치하더라도 더 많은 규칙들이 (L)을 거치지 않고서도 실행됩니다 ....

관련 문제