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

締切り済みの質問

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]
---

投稿日時 - 2018-08-22 20:02:43

QNo.9529912

困ってます

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

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

回答(1)

ANo.1

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の正規化について
 記載がないかをまずは確認するべきです)

投稿日時 - 2018-08-23 17:28:53

あなたにオススメの質問