2017-11-20 33 views
3

私は完璧な301リダイレクトを探しています。しかし、私は非常に多くの解決策を見出しており、どちらが最善であるかわからない。私が試したトップ2の選択肢と彼らは働いていますが。 301 HTTPからHTTPSへのリダイレクト:ベストウェイ

この

は、私は誰かがこの1に私を助けている場合は素晴らしいことだ http://www.exampledomain.comから https://www.exampledomain.com

にすべてをリダイレクトしたい全く新しいサイトためです。私は多くの参照を見つけています

、次のように:

1. <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.exampledomain.com/$1 [R,L] </IfModule>

2. RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

3. <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule^https://%1%{REQUEST_URI} [R=301,L] </IfModule>

4. RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

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

6. RewriteCond %{HTTPS} off RewriteCond %{HTTP_HOST} example\.com$ [NC] RewriteRule^https://example.com%{REQUEST_URI} [R=301,L,NE]

おかげトン、 ジェイ

+0

これらのルールはすべて同じことをするわけではありません。サブドメインにも同じルールが適用されますが、他のルールには適用されません。ポートによってはHTTPS環境変数に依存するものもあれば、HTTPS環境変数に依存するものもあります。一部のユーザーは、URLに応じて異なるターゲットにリダイレクトされます。また、SSLを処理するリバースプロキシの背後にいて、ルールがあるバックエンド(一般的には、CloudFlareのように、リダイレクトを行うように設定していない場合) 。 – janh

答えて

1

は、彼らはすべてのわずかなvariantionsで、かなり同じです。

  1. ポート番号(80)によってではなく、変数%{HTTPS}によって非HTTPSトラフィックを検出し、そしてのみhttps://www.exampledomain.com/にリダイレクト。だからこれをスキップしてください。

  2. 「コア」バージョンです。リクエストがhttp-onlyであれば、適切なhttpsバージョンにリダイレクトされます。それ以上のものはありません。

  3. 2に似ていますが、mod_rewriteがApacheで利用できるかどうかの条件も追加されます。もしあなたが確信が持てばそれを追加する必要はありません(mod_rewriteなしでは、これらの方法のどれも動作しません)。また、ドメイン名の先頭に "www"が含まれているため、すべてのトラフィックはwww以外のウェブサイト(www.somedomain.comからsomedomain.com)にリダイレクトされます。

  4. [L 、R = 301]、おそらく間違って省略されたでしょう。

  5. 2と似ていますが、wwwバージョンのドメイン名にリダイレクトされます。

  6. 2に類似していますが、一般的ではなく、example.com(実際には使用したくない)でのみ動作します。あなたはアドレスにWWWをいじる、またはあなたが行う場合は3または5を選択したくない場合は

ので、2を選びます。 .htaccessの先頭にRewriteEngine Onを追加することができます。すべての規則ではなく、一度onluが必要です。また、別のサーバーで同じコードを使用し、どのモジュールを使用できるかわからない場合は、<IfModule mod_rewrite.c></IfModule>を3から追加できます。

+0

ありがとうございました。以下のような情報ですか?デフォルトでは、WordPressの開始から終了までのWordPressがあります。上記のリダイレクションコードを追加しました。 ' のRewriteRule^$ HTTPSオフ するRewriteCondの%{HTTPS}でRewriteEngine(*)://%{HTTP_HOST}%{REQUEST_URI} [L、R = 301] #ワードプレス <のIfModule mod_rewrite.cをBEGIN > でRewriteBase/ のRewriteRule ^指数に RewriteEngine \ .phpの$! - [L] するRewriteCondの%{REQUEST_FILENAME} -f するRewriteCondの%{REQUEST_FILENAME} のRewriteRuleを-d。 /index.php [L] #ENDワードプレス – Mrutyunjaya

関連する問題