こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

.htaccessの書き方 リダイレクト

http://example.com
http://www.example.com
https://example.com

これらへのアクセス全てを
https://www.example.com

にリダイレクトさせたいと思います
.htaccessは具体的にどう書いたら良いでしょうか?

よろしくお願いします

投稿日時 - 2015-12-21 11:23:10

QNo.9099085

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

RewriteRule https://www.example.com/ - [L]

RewriteRule https://www\.example\.com/ - [L]
にして下さい。

ピリオドがワイルドカード文字として機能するのを失念していました。

当方の考えでは、この1行によってリダイレクトのループを防げる筈なんですが、これでもループ防止に失敗するのであれば、以下のように条件を厳しくした方が良いでしょう。

RewriteEngine On
RewriteBase /
#http://で来たらhttps://に飛ばす
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
#https://で、かつ、www無しできたら、https://のwww付きに飛ばす
RewriteCond %{SERVER_PORT} 443
RewriteCond %{HTTP_HOST} ^example\.com
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

これなら「ループしない筈」です。

但しサクラインターネットでWordPressを導入すると、HTTP_HOSTがウソをつくので
RewriteCond %{HTTP_HOST} ^example\.com
でループします(これに付いての対処方法は、本題と関係ないので略します)

投稿日時 - 2015-12-21 15:32:46

ANo.1

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

投稿日時 - 2015-12-21 12:19:35

補足

設定後chromeでアクセスすると
このウェブページにはリダイレクト ループが含まれています
と表示されてしまいます。

投稿日時 - 2015-12-21 12:41:39

あなたにオススメの質問