2011-02-01 12 views
0

私はそれをすべて試しました!Isapi Rewrite:wwwからnon-wwwへ、同時にhttpからhttpsへ

この:WWWがある場合は、HTTP、HTTPS にリダイレクトがある場合 :私は仕事にそれを作るのですかbeggining

でHTTPを入れていない場合にのみ

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

作品非WWW にリダイレクトし、ofcourseの両方が同じ時間にすべての後にサブフォルダとクエリで

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サイトを取得するのに問題があります。一方

、私はカップルの事を参照してくださいので、(これは、使用しているように見えるisapi_rewrite V3を、前提として)の代わりにこれを試してください:

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

これはキャプチャするのRewriteRuleに括弧を追加します$ 1のURL。

$ 1のキャプチャの開始時に1つがあるので、%1 $ 1の間のスラッシュは必要ありません。

大文字と小文字を区別しないためにNCを使いたいのですが、Rルールは最終ルールなので、最後にLを使う必要はありません。

EDITは私が/更新上記の私の元の答えに二次の問題のいくつかを明確にするために、この答えを再訪しました。これらは上記の主な解決策を変更しません。キャプチャを行うためにかっこを追加することでした。

オリジナル:$ 1キャプチャの開始1つがありますので、

は、次に%1 $ 1間のスラッシュは、必要とされていません。

これは実際にルールがどこにあるか、そしてRewriteBaseステートメントがあるかどうかによって異なります。共通の共有ホスト構成では、ルール内にスラッシュがありません。したがって、スラッシュが必要になります。もしあなたが確信が持てないなら、あなたは一緒に試すことができます。

オリジナル:

私は、大文字と小文字を区別しないためにNCを使用したい、とRのルールは、最終的なルールですので、あなたは最後のためにLを必要としません。

[NC,R=301,L]のように、パフォーマンスにRを持つLを持つと便利です。私は実際にこの質問の前に今年ヘリテックでこれを求めていたが、それforgettenた:

...私たちは、301のリダイレクトルールで[L]を使用する理由:その応答から
http://www.helicontech.com/forum/14826-Does_Redirect_need_Last.html
をリダイレクトが発生していないのは、すぐに です。あなたが[L]を持っていない限り、ルールが一致していても、さらにルールが実行されます(実行されます)。

関連する問題