apacheでaliasを使用したときのrewriteではまる。。
apacheの設定(httpd.conf)で↓のようにaliasを設定
DocumentRoot /home/htdocs/
Alias /test/ “/home/test/”
でアクセスすれば/home/test/内が表示される。
そこで、
↓
へリダイレクトしたいとする。
/home/test/.htaccessに↓を記載する
# Only SSL
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)?$ https://test.jp/$1 [R,L]
しかしこれでは
↓
へリダイレクトされてしまう。
/test/はaliasで設定されているため、
^(.*)?$
は↓のxxxxxの部分しかマッチしないので、$1に「test/」は含まれない。。
なので、↓のように書くのが正解。
# Only SSL
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)?$ https://test.jp/test/$1 [R,L]