2008年4月 7日

[Apache-Users 7029] Re:SSL + mod_rewriteのURL書き換えについて

** Apache ユーザーズメーリングリスト **
** 注意:このメールへの返信は Apache-Users へ行きます **

まつやま 様

お忙しいところ、ご回答ありがとうございます。

> RewriteLogLevelを大きめにして、ログをとって、どのようにrewriteが行われているかちぉっくしてみてはいかがですか?


https://(SSL付き)でアクセスしたところ、rewriteのログには何も出力されず、404エラーが返ってきました。

そこでhttp://でアクセスしたところ、ログは以下のようになっております。
192.168.0.2 は、アクセスしているPCのIPアドレス、
192.168.0.10 は、サーバーのIPアドレスです。
日付など、不要な部分は省略しています。

+-- ログ ここから

[1行目] 192.168.0.2 - - (2) init rewrite engine with requested uri
/secret/access/123456/
[2行目] 192.168.0.2 - - (3) applying pattern '^/secret/access/(.+)/$' to
uri '/secret/access/123456/'
[3行目] 192.168.0.2 - - (2) rewrite '/secret/access/123456/' ->
'/secret/access.php?id=123456'
[4行目] 192.168.0.2 - - (3) split uri=/secret/access.php?id=123456 ->
uri=/secret/access.php, args=id=123456
[5行目] 192.168.0.2 - - (2) forcing proxy-throughput with
http://www.example.com/secret/access.php
[6行目] 192.168.0.2 - - (1) go-ahead with proxy request
proxy http://www.example.com/secret/access.php [OK]
[7行目] 192.168.0.10 - - (2) init rewrite engine with requested uri
/secret/access.php
[8行目] 192.168.0.10 - - (3) applying pattern'^/secret/access/(.+)/$' to
uri '/secret/access.php'
[9行目] 192.168.0.10 - - (3) applying pattern'^/admin_only/(.*)?$' to uri
'/secret/access.php'
[10行目] 192.168.0.10 - - (3) applying pattern'^/secret/(.*)?$' to uri
'/secret/access.php'
[11行目] 192.168.0.10 - - (2) rewrite '/secret/access.php' ->
'https://www.example.com/secret/access.php'
[12行目] 192.168.0.10 - - (2) implicitly forcing redirect (rc=302) with
https://www.example.com/secret/access.php
[13行目] 192.168.0.10 - - (1) escaping
https://www.example.com/secret/access.php for redirect
[14行目] 192.168.0.10 - - (1) redirect to
https://www.example.com/secret/access.php?id=123456 [REDIRECT/302]

+-- ログ ここまで

つまり、5〜6行目で、すでにブラウザのURL欄に、
http://www.example.com/secret/access.phpと表示されるようにされているということでしょうか。


現在の設定は、httpd.confに以下のように書いております。

<IfModule mod_rewrite.c>
RewriteLog /var/www/rewrite_log/rewrite_log
RewriteLogLevel 3

RewriteEngine On
RewriteRule ^/secret/access/(.+)/$ /secret/access.php?id=$1 [P]

RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/admin_only/(.*)?$ https://%{HTTP_HOST}/admin_only/$1
RewriteRule ^/secret/(.*)?$ https://%{HTTP_HOST}/secret/$1
</IfModule>

ログを見て、対策などできればよいのですが・・・
皆様のお力添えを、よろしくお願いいたします。

--
入退会・変更・配送一時停止は以下へ
http://mm.apache.jp/mailman/listinfo/apache-users

投稿者 xml-rpc : 2008年4月 7日 17:42
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/71898
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。