特定のファイルにアクセスがあった時のみ
httpsとなるように
http.confにrewriteを設定しました。
パスワード認証のファイルにアクセスがあったときのみHTTPSにしたかったため、
LoadModule rewrite_module modules/mod_rewrite.so #コメントアウトし、
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteLog ”logs/rewrite_log”
RewriteLogLevel 0
RewriteRule ^/test/pass.php(.*)?$ https://%{HTTP_HOST}/test/pass.php [L,R]
</IfModule>
と設定しました。
ただ認証ファイル(pass.php)を抜け、パスワード認証後の他のファイルに移ったあとも
URLがhttps://となっているのですが
実際にはhttpでほかのファイルはアクセスされているのでしょうか?
ちなみにパスワード認証はphp5とmySQLを用いて行っています。
環境:
windows2000
Apache2
OpenSSL 0.97
php5
mySQL4
宜しくお願いします。
> URLがhttps://となっているのですが
> 実際にはhttpでほかのファイルは
> アクセスされているのでしょうか?
httpsでアクセスしていると思われます。
恐らく認証時のフォームの指定が相対指定になっているのでは無いでしょうか?
もしそうであればフォームの指定をhttp://からのURIで指定して下さい。
http://www.net-newbie.com/trans/mod_rewrite.html
Apache module mod_rewrite
URL表示がhttpsとなっているので、
アクセスもhttpsで行われています。
試しに、
RewriteLogLevel 1
にして動作させてみると、ログが取れますので、
実際の動きがわかりますよ。
Pass.php以外をhttpでアクセスするには、
「httpsで来たらhttpにする」を表現すれば
良いですね。
RewriteRule ^/test/pass.php(.*)?$ https://%{HTTP_HOST}/test/pass.php
RewriteRule ^/$ https://%{HTTP_HOST}/$1
これかな。後ろのL,Rは取ること。
これで、最初の条件に引っかかれば、次のには
引っかからなくなります。
ありがとうございます。
参考になります。
ありがとうございます。
確認して見ます。