前提・実現したいこと
.htaccessにリダイレクト処理を記述して
http https wwwあり wwwなし
のいずれのアクセスも
https://hoge.com
の形にリダイレクトしたいです。
よろしくお願いいたします。
環境
さくらのVPSにCentOS7、apacheをインストール
お名前ドットコムでドメイン取得し以下のドメインをDNS設定
hoge.com
www.hoge.com
test.hoge.com
www.test.hoge.com
サーバーに以下のディレクトリを用意、その中にindex.htmlと.htaccess設置
www/html/home
www/html/test
バーチャルホスト設定で
hoge.com は www/html/home へ
test.hoge.com は www/html/test へ
Let's Encryptをインストールしhoge.comとtest.hoge.comをSSL化
httpd.confファイルのAllowOverride を All に
.htaccessの記述
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC] RewriteRule ^(.*)$ https://%1/$1 [R=301,L] RewriteCond %{HTTPS} !on RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </IfModule>
発生している問題
http://www.hoge.comはhttps://hoge.comにリダイレクト
http://hoge.comはhttps://hoge.comにリダイレクトできるのですが
https://www.hoge.comだとリダイレクトされず
「この接続ではプライバシーが保護されません」
という証明証が無効の際に表示されるページが出てしまいます。
試しにそのページで詳細設定→www.hoge.comにアクセスする で開いてみるとApacheの「testing 123...」というデフォルトページみたいなのが表示されます。
つまりそもそもwww/html/homeディレクトリへ辿り着けていないからリダイレクトもされるわけないという事はなんとなく察しましたが、なぜhttpsのwwwありの時だけ駄目なのかが分かりません。
試したこと
一旦.htaccessファイルを削除して挙動を確認すると
https://hoge.com、http://www.hoge.com、http://hoge.com だとwww/html/home内のindex.htmlが表示されますが
https://www.hoge.comだとやはりApacheの「testing 123...」が表示されます。
wwwが付いていようがいまいが自動的に同じディレクトリを開くのだと思っていたのですがそうじゃないのでしょうか?(しかしhttpなら同じディレクトリ開いてくれてるし…)
回答1件
あなたの回答
tips
プレビュー