[概 要]
[対 策]
LoadModule rewrite_module modules/mod_rewrite.so #コメントアウト(行頭の#)を外す。
# /usr/local/apache2/bin/httpd -l
Compiled in modules:
(snip)
mod_rewrite.c
(snip)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteLog "logs/rewrite_log"
RewriteLogLevel 0
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/hogehoge/(.*)?$ https://%{HTTP_HOST}/hogehoge/$1 [L,R]
RewriteRule ^/~oyaji/himitsu/himitsu.cgi(.*)?$ https://%{HTTP_HOST}/~oyaji/himitsu/himitsu.cgi [L,R]
</IfModule>
- RewriteEngine On
rewriteを有効にする。
- RewriteLog "logs/rewrite_log"
rewrite動作のログファイル指定。Windowsなら"logs/rewrite.log"の方が扱いやすい。
- RewriteLogLevel 0
rewriteのログレベル指定。「1」にするだけで膨大なログが出るので、デバッグが終わったら「0」にしないと大変なことになる。
- RewriteCond %{SERVER_PORT} !^443$
サーバ(apache)へのアクセスポートが443番では無かったら(即ち、httpsでのアクセスではなかったら)、以下のルールを適用するという意味。
- RewriteRule
必要な分を1行づつ記述していくが、基本は正規表現でマッチングをとり、一致したらHTTPSにrewriteさせる。
[1行目の例]
http://www.aconus.com/hogehoge/ というように、/hogehogeというディレクトリ配下にアクセスがあった場合は、そのままhttpsにredirectする例。
[2行目の例]
http://www.aconus.com/~oyaji/himitsu/himitsu.cgiというように、おやじのhimitsuディレクトリ内のhimitsu.cgiにアクセスしたときだけhttpsにredirectする例。himitsuディレクトリ内のほかのものは公開でhttpでアクセスさせるが、himitsu.cgiだけはパスワードアクセスにしてあるので、暗号化したい場合などに使用。