[PHP-users 33338] Re: .htaccess

kanonbell kanonbell.sky @ gmail.com
2008年 2月 28日 (木) 23:00:13 JST


こんばんは。

話題はApacheのmod_rewriteに関するものであり、PHPとは関係ありません。
PHPを利用する上で使用することもあるので全く関連がないとは言いませんが、
質問をする際には適切な場所かどうかは良く考えた方が良いと思います。


んで、2行のRewriteCond を外して
>  RewriteRule ^(.+)$ filenamecheck.php?filename=$1
これ単独にしてしまっても動作しなかったんでしょうか?
または
RewriteRule ^/(.+)$ filenamecheck.php?filename=$1
とかで。
動作確認した訳ではないのでアレですけれど。
.htaccessで書く場合はRewriteBaseあたりも使わないとうまくいかないんだった
かなあ。。


物理マップの書き換えができるmod_rewriteはとても強力ですが、正規表現に
よって多用な使い方ができる分、想定外の現象が発生することが結構あります。
>  http://xxx.com/abc
>  のようなURLが
>  http://xxx.com/filenamecheck.php?filename=abc
>  と同じ意味になりphp側で
見かけ上はそうですが、同じ意味になるわけではないので、十分注意して
設定を行ってください。
http://japache.infoscience.co.jp/rewriteguide/
ここあたりは一通り目を通しておいた方が良いでしょう。
「黒魔術」って表現されてた気がするけど、変わったのかな。。

やりたいことをよく確認してみると、mod_rewriteを使わなくてもAliasとかAliasMatch
とかでなんとかなることもありますし。
mod_rewrite以前に、何らかのファイルを読み込んで実行する処理を実装する際に、
そのファイル名をユーザー入力から受け取るって仕組みはモノによってはかなり
危険なことになりかねないですけれども。


PHP-users メーリングリストの案内