apacheでaliasを使用したときのrewriteではまる。。


apacheの設定(httpd.conf)で↓のようにaliasを設定

DocumentRoot /home/htdocs/

Alias /test/ “/home/test/”

http://test.jp/test/

でアクセスすれば/home/test/内が表示される。

そこで、

http://test.jp/test/

https://test.jp/test/

へリダイレクトしたいとする。

/home/test/.htaccessに↓を記載する

# Only SSL

RewriteEngine on

RewriteCond %{SERVER_PORT} !^443$

RewriteRule ^(.*)?$ https://test.jp/$1 [R,L]

しかしこれでは

http://test.jp/test/

https://test.jp/

へリダイレクトされてしまう。

/test/はaliasで設定されているため、

^(.*)?$

は↓のxxxxxの部分しかマッチしないので、$1に「test/」は含まれない。。

http://test.jp/test/xxxxx

なので、↓のように書くのが正解。

# Only SSL

RewriteCond %{SERVER_PORT} !^443$

RewriteRule ^(.*)?$ https://test.jp/test/$1 [R,L]

  • このエントリーをはてなブックマークに追加

コメントをどうぞ

メールアドレスが公開されることはありません。