example.co.uk
およびexample.com
ドメイン名があります。メインのWebサイトはexample.co.uk
です。ドメインexample.co.uk
にSSL証明書があります。
.htaccess
ファイルを使用して、ブラウザで表示されるすべてをSEOに影響を与えずにhttps:
に301リダイレクトします。
これは、次のエントリを意味します。
example.co.uk
example.com
www.example.com
www.example.co.uk
http://example.co.uk
http://example.com
http://www.example.co.uk
http://www.example.com
https://example.co.uk
https://example.com
https://www.example.com
すべてhttps://www.example.co.uk
に転送します。
これは単一ページのサイトなので、「キャッチオール」タイプのソリューションが機能します。理想的には、これが複数ページのサイトで機能することを望みます。したがって、別のプロジェクトで.htaccess
コードを再度使用できます。
私は次のことを思いつきましたが、.com
エントリをhttps://example.com
またはhttps://www.example.com
に変換してから停止します。
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_Host}%{REQUEST_URI} [L,R]
RewriteCond %{HTTP_Host} ^(www\.)?example\.com$ [NC,OR]
RewriteCond %{HTTP_Host} ^example\.co.uk$ [NC]
RewriteRule ^ https://www.example.co.uk%{REQUEST_URI} [L,NE,R]
ドメイン
example.co.uk
にSSL証明書があります。
おそらくこれはwww
サブドメインもカバーしていますか? (必要になるでしょう。)
https://example.com https://www.example.com
Simonがコメントで述べたように、https://example.com
をリダイレクトするには、example.com
ドメインをカバーするSSL証明書が必要です。そうでない場合、ブラウザは無効な証明書の警告で停止します。 (SSLハンドシェイクが発生しますbeforeサーバーはリクエストを処理できます。)
私は次のことを思いつきましたが、
.com
エントリをhttps://example.com
またはhttps://www.example.com
に変換してから停止します。
おそらく無効な証明書の警告を受け取っているからでしょうか?
複数のドメインがあるため、可能性のあるものすべてを積極的に一致させるよりも、正規のホストであるnotをリダイレクトするルールを作成する方が簡単です。例えば:
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_Host} !=www.example.co.uk
RewriteRule ^ https://www.example.co.uk%{REQUEST_URI} [R,L]
これは、HTTPSとwwwの正規化の両方を単一のルールに結合します。
CondPatternの!
プレフィックスは式を否定するため、指定された文字列/正規表現と一致しない場合に成功します。この場合、Hostが文字列www.example.co.uk
ではない場合に成功します。 =
プレフィックスは完全一致(辞書編集比較)演算子であるため、残りのCondPatternは正規表現ではなく通常の文字列と見なされます。
NE
(noescape
)フラグが必要ですか?最初のルールでこれを省略したため、とにかくこのディレクティブを通過した特殊文字は当然失われます。
RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_Host}%{REQUEST_URI} [L,R] RewriteCond %{HTTP_Host} ^(www\.)?example\.com$ [NC,OR] RewriteCond %{HTTP_Host} ^example\.co.uk$ [NC] RewriteRule ^ https://www.example.co.uk%{REQUEST_URI} [L,NE,R]
脇:でHTTP_Host
を使用しているのでsubstitutionで最初のRewriteRule
で、これらのルールの順序を変更した場合は避けますhttp://example.co.uk
などにアクセスするときの不必要な2番目のリダイレクト.