- 締切済み
.htaccessの書き方 リダイレクト
http://example.com http://www.example.com https://example.com これらへのアクセス全てを https://www.example.com にリダイレクトさせたいと思います .htaccessは具体的にどう書いたら良いでしょうか? よろしくお願いします
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
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 でループします(これに付いての対処方法は、本題と関係ないので略します)
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
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]
補足
設定後chromeでアクセスすると このウェブページにはリダイレクト ループが含まれています と表示されてしまいます。