- 締切済み
wwwありかつhttpsへリダイレクトさせたい
.htaccessに以下の記述をしていますが、 ブラウザでURLに”xxxx.jp”と"http://xxxx.jp"と入力してアクセスすると、 https://xxxx.jpにリダイレクトされてしまます。 ドメインxxxx.jpを.htaccessに記載せずにhttps://www.xxxx.jpにリダイレクトさせる記述をご存知でしょうか? wwwありの場合"www.xxxx.jp"、"http://www.xxxx.jp"は意図したとおり”https://www.xxxx.jp"に転送されています。 --- RewriteEngine On RewriteCond %{HTTPS} off RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] ---
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- superside0
- ベストアンサー率64% (461/711)
RewriteCond %{HTTPS} off RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] で1セットで RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] で1セットです。(前方優先) つまり、%{HTTPS}がoffのときは RewriteCond %{HTTPS} off RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] のほうにヒットしますので、 https://%{HTTP_HOST}/~ に転送してRewriteは完了です。 よって、http://xxxx.jp/ にアクセスすると、 https://xxxx.jp/ に 転送するだけで www付きに正規化はしてくれません。 なので、最初のほうは RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] って書かないで、 RewriteRule .* https://www.example.com%{REQUEST_URI} [L,R=301] にしてしまえば、解決しないですかね。 > ドメインxxxx.jpを.htaccessに記載せずにhttps://www.xxxx.jpにリダイレクトさせる記述をご存知でしょうか? WordPressを使っているなら、WordPressの一般設定の サイトアドレスやWordPressアドレスで、wwwあり・なしや SSLに 正規化できます。 また、 .htaccessで、 www付き+SSLに正規化する方法もあります。(例えば上記のようにして) ただし、WordPressでも正規化しているのに、 .htaccessやWebサーバー側での正規化していると転送がループして、 エラーすることもあるのでサーバーとの組み合わせにも注意しましょう。 (WordPress使っているなら、 レンタルサーバーのサポートページに WordPressや URLの正規化について 記載がないかをまずは確認するべきです)