2008年6月24日

[Apache-Users 7068] Re:RewriteRule ^/ でマッチしない

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

田中@tyukio.netです

Tokio Kikuchi さんは書きました:
> RewriteBase があるか無いかの違いじゃないでしょうか?

Tietew さんは書きました:
> httpd.conf に書く RewriteRule はURL全体を見て、.htaccess に書く
> RewriteRule はそこのパスからの相対URLを見ます。


菊池さん、Tietawさん返信ありがとうございます
ご意見を元にいろいろ試してみました

・先に結論
 結論から書きますと少なくともFedora9+Apache2.2.8+suexecで
 RewriteRule ^/ にマッチするのは
 VirtualHostを設定していない httpd.conf中の
 グローバルセクションだけでした。


・生意気にも勝手な推測をば(おそるおそる)
 mod_rewriteは
http://httpd.apache.org/security/vulnerabilities_13.html
 を見ますと度々脆弱性が見つかっており
 そのたびに仕様が変わっている物と思われますが、
 巷の解説サイトに .htaccess中で RewriteRule ^/ 〜〜と書かれているのは
 仕様変更前の古いものについて書かれているのではないかと?
 ひょっとしたらApache本体をバージョンアップしても
 mod_rewrite.so も新しいものに置き換えないと古い仕様の動作になるのでは
 無いかと思ったりしてます。
 間違っていましたら ツッコミよろしく
  (時間のあるとき http://archive.apache.org/dist/httpd/ から
   古いバージョン拾って試してみるかな? ボソッ)


・####以下実験####
実験方法
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/d.htm
RewriteRule ^(.*)$ /d.htm?$1 [R]

これをいろいろな所に置き
http://hoge.example.com/a.htm
にアクセスして試してみました。
 (a.htm部分はキャッシュを防ぐために->b.htm->c.htm->eと変えていきました)

1.Documentroot(/var/www/html)のDirectoryコンテナ内
 結果
http://hoge.example.com/d.htm?a.htm

2.Directoryコンテナの外(グローバルセクション? でいいんですかね?)
 結果
http://hoge.example.com/d.htm?/b.htm

3. <Directory /> コンテナ内
 結果
http://hoge.example.com/d.htm?var/www/html/c.htm

以上まではVirtualHost設定無しで、ここから下はVirtualHost有り

4.VirtualHostのDocumentRoot( /var/www/tyukio/www)に置いた .htaccess
 結果
http://tyukio.example.com/d.htm?e.htm

5.4と同じ場所で
RewriteEngine on
RewriteBase /var/www/tyukio/www
RewriteCond %{REQUEST_URI} !^/d.htm
RewriteRule ^(.*)$ /d.htm?$1 [R]
 結果は4と同じ

6.4と同じでRewriteBase /var/www/tyukio
 やはり結果は 4.と同じでした

7.VirtualHost設定ありの状態でhttpd.confのグローバルセクション
 結果
 404 Not found /l.htm

8 同上 <Directory /> コンテナ内
 結果
http://tyukio.example.com/d.htm?var/www/tyukio/www/m.htm

上記の8例で RewriteRule ^/(.*)$ /d.htm?$1 [R]
でも試してみましたが マッチしたのは 2.だけでした

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


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




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