2017-01-19 17 views
1

私はwwwをリダイレクトするために次の2ページを取得する予定です。それぞれのホストのバージョン。httpとhttpsの両方でwwwからwwwにリダイレクトします

http://website.co.uk > redirect to > http://www.website.co.uk 

https://website.co.uk > redirect to > https://www.website.co.uk 

私は、HTTPおよびそれぞれのURLのために働いてHTTPSの両方を維持する必要があります。

答えて

1

あなたがhttphttpsの両方でwwwを追加するには、この単一のルールを使用することができます。

# for Apache 2.4+ use this rule 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteRule^%{REQUEST_SCHEME}://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

あなたならば」を古いApacheバージョンを使用してこの規則を使用してください。

# for Apache 2.2 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteCond %{HTTPS}s on(s)| 
RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE] 
+0

内部ページに移動すると、すべてのページが/index.phpにリダイレクトされます。たとえば、http://website.com/en/for-suppliers/supplier-solutionsに行くと、http://www.website.com/index.phpではなくhttp://www.websiteにリダイレクトされます。 com/en/for-suppliers/supplier-solutionsはそうするべきですか? –

+0

このリダイレクトを最初のルールとして 'RewriteEngine On'行のすぐ下に置き、ブラウザのキャッシュをクリアすれば、この問題は発生しません。 – anubhava

0

RewriteEngineルールを使用しようとしましたか? 次のトリック(80と443をバーチャルホストの両方のためにそれを適用)実行する必要があります。

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteRule ^(.*)$ https://www.website.co.uk$1 [R=301,L] 
#for 80 port: RewriteRule ^(.*)$ http://www.website.co.uk$1 [R=301,L] 
関連する問題