2017-03-02 6 views
2

私はwwwを非wwwにリダイレクトし、httpをhttpsにリダイレクトする手段を作成しました。しかし、これを行うためのよりエレガントで効率的な方法があるのだろうかと思います。ここに私のコードだ:非wwwにリダイレクトしてSSLを同時に適用する最も良い方法

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

# Rewrite all http to https 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://{HTTP_HOST}.com/$1 [R=301,L] 

答えて

1

あなたは、単一のRewriteRuleを使用して、非WWWとhttpsを強制することができます

RewriteEngine on 

RewriteCond %{HTTPS} off [OR] 
RewriteCond %{HTTP_HOST} ^www\. 
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ 
RewriteRule^https://%1%{REQUEST_URI} [NE,L,R] 

ORとAND条件の組み合わせは、上記一度にリクエストの2種類を操作するために私達を許可します1)http www、2)https wwwとルールは、常にssl非wwwバージョンにそれらをリダイレクトします。 RをR = 301に置き換えて、リダイレクトを永続的にすることができます。

+0

ありがとうございます!私は非wwwを強制しようとしています。これを行うために、私は2番目の条件を 'RewriteCond%{HTTP_HOST}!^ www \'に変更すると考えています。しかし、私は第3の条件についてはわかりません。私はそれをそのまま残していますか? – user3092

+0

@ user3092更新された回答 – starkeen

+0

をご覧ください。どちらの回答も貴重です。同時にSSLでwwwを強制する方法を示すのではなく、なぜあなたが編集したのか不明です。救助隊の改訂履歴:-) – sun

関連する問題