環境:
Fedora 9
apache 2.2.8
ちょこっとハマりました。
バーチャルホストの場合はバーチャルホストのぶんだけ
mod_rewrite の記述が必要だったのですね。
SSL と同じでした。
apache の mod_rewrite を使うと、リクエストに対し正規表現を使ってリダイレクトできます。
今回の環境では httpd.conf の中で mod_rewrite はデフォルトで有効になってました。
# でコメントアウトされていたら、それを外しましょう。
下記は http のリクエストを https へリダイレクトする設定です。
リクエストが TCP/port443 でない場合 (RewriteCond)
^/(.*)?$ (ドキュメントルートからすべてのリクエストに対して)
https://%{HTTP_HOST}/content/ へリダイレクトするという指示です。(RewriteRule)
今回は vhost.conf に書きました .htaccess でも可能なようです。
しかし、apache が毎回 .htaccess を読み込むようになるので
.conf に書くよりも遅くなります。root がある場合には
.conf に書きましょう。
Fedora 9
apache 2.2.8
ちょこっとハマりました。
バーチャルホストの場合はバーチャルホストのぶんだけ
mod_rewrite の記述が必要だったのですね。
SSL と同じでした。
apache の mod_rewrite を使うと、リクエストに対し正規表現を使ってリダイレクトできます。
今回の環境では httpd.conf の中で mod_rewrite はデフォルトで有効になってました。
LoadModule rewrite_module modules/mod_rewrite.so
# でコメントアウトされていたら、それを外しましょう。
下記は http のリクエストを https へリダイレクトする設定です。
<VirtualHost *:80>
DocumentRoot /var/www/html/
ServerName hoge.example.jp
ErrorLog logs/error_log
CustomLog logs/access_log combined
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*)?$ https://%{HTTP_HOST}/content/
</VirtualHost>
.
.
.
リクエストが TCP/port443 でない場合 (RewriteCond)
^/(.*)?$ (ドキュメントルートからすべてのリクエストに対して)
https://%{HTTP_HOST}/content/ へリダイレクトするという指示です。(RewriteRule)
今回は vhost.conf に書きました .htaccess でも可能なようです。
しかし、apache が毎回 .htaccess を読み込むようになるので
.conf に書くよりも遅くなります。root がある場合には
.conf に書きましょう。