2017-02-01 16 views
0

www.example.comにSSLがあり、cPanelに別名ドメイン(例:mydomain.co.uk、otherdomain.comなど)がパークされていますアカウント。.htaccess - 単一ドメインとSSLを強制的に使用する

私がしたいことは、すべての要求に対してhttps://www.example.comを強制的に使用することです。ドメインの後ろにあるものはそのまま(これは.htaccessの後のSEOフレンドリなURLにも書き換えられます)。例えば

: - :

RewriteEngine on 

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

RewriteCond %{SERVER_PORT} ^80$ 
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L] 

しかし、それは一度に行うことができます - を?

http://example.com/page/2/ 
https://example.com/page/2/ 
http://www.otherdomain.com/page/2/ 
http://mydomain.co.uk/page/2/ 

はすべて

https://www.example.com/page/2/ 

これは、ほとんどの作品になるはずですかまた、上記の例のためのURLに再度、クエリ文字列を追加している: - :検索エンジンフレンドリーなSEOの一部である

https://www.example.com/page.php/2/?2/ 

: - -

Options +SymlinksIfOwnerMatch +MultiViews 
RewriteRule ^(.*).php/(.*) $1.php?$2 

http://www.example.com/page/2/ 

はと終わるされます

変更しないでください。

IIRC、私はちょうどwww.example.comと罰金働いていたの強制、SSLを強制する前に: -

RewriteEngine on 

RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC] 
RewriteRule ^(.*)$ http%2://www.example.com/$1 [R=301,L] 

感謝任意の助けを!単一のリダイレクトでWWWとhttpsを強制的に

+0

[.htaccessルール:複数のドメインから1つのSSLドメイン]可能な複製(http://stackoverflow.com/questions/15212134/htaccess-rule-multiple-domains-to-one-ssl-domain) – Walf

+0

類似した見た目しかし、以下の@starkeenの答えは、より良い(完全ではないにしても)結果を与える。私が持っているSEOの友好的な追加のために、提案された複製の答えは実際に私のために働かないでしょうか? –

+0

ルールは事実上同一であり、これはこのタグの最も一般的なタイプの質問です。あなたはちょうどうんざりでSOを補充する手助けをしています他のすべての書き換えが行われる前に、新しいコードを先に入れましたか? – Walf

答えて

1

は、次のルールを使用することができます。

RewriteEngine on 
RewriteCond %{HTTPS} off [OR] 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteRule^https://www.example.com%{REQUEST_URI} [L,NE,R] 
+0

ありがとうございます.2番目の条件を RewriteCond%{HTTP_HOST}!^ www \ .example \ .com [NC] 'に変更して、example.comドメインとwww。しかし、私はまだ次のようなエンドURLを取得しています: - https://www.example.com/page.php/2/?2/ これはどうですか? –

1

は、このバージョンをお試しください。それはブラウザによって送信された元の要求を使用するので、他の書き換えに影響されないようにする必要があります。あなたはまだ余分な迷惑を経験した場合、それはどこか他の場所から来ている。

RewriteEngine on 
RewriteCond %{HTTPS} =off [OR] 
RewriteCond %{HTTP_HOST} !=www.example.com [NC] 
#RewriteCond %{HTTP_HOST} !=your.dev.server [NC] 
RewriteCond %{THE_REQUEST} ^\S++\s++(\S++) 
RewriteRule^https://www.example.com%1 [DPI,NE,L,R=301] 

追加のコメントルールは、開発サーバーでこのリダイレクトを避ける必要がある場合に備えています。

+0

ありがとう@Walf。私は環境変数(DEV_SERVER)をdev_serverに設定し、 ...を.htaccessに使用して、そこに必要でないものはすべて無視します。この最新バージョンは他のものと同じ結果を出しているので、別の場所から来ているという点で正しいものでなければなりません。私が使っているCMSは301リダイレクト(PHP)を使ってURLを書き直す場合もありますが、これが必要ですが、(.htaccess)URLが書き換えられていれば分かります。正しいページが表示され、HTMLに標準URLが含まれているので、私はこれで生きることができます。もう一度、それに固執してくれてありがとう! –

関連する問題