• 締切済み

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

http://example.com http://www.example.com https://example.com これらへのアクセス全てを https://www.example.com にリダイレクトさせたいと思います .htaccessは具体的にどう書いたら良いでしょうか? よろしくお願いします

みんなの回答

回答No.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 でループします(これに付いての対処方法は、本題と関係ないので略します)

回答No.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]

youking
質問者

補足

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

関連するQ&A