ようこそゲストさん

Magical Diary, beta version

[Apache] Mod_rewriteの罠

2007/07/16 11:46 HIRATA Yasuyuki

罠1. Mod_rewriteのRewriteCondは、その後に出現する最初のRewriteRuleのみに適用される。という罠に引っかかった。以下のような記載をした場合、1番目はGETのみに限定することが出来るが、2番目のルールはすべてのメソッドに対して適用されてしまう。

RewriteCond %REQUEST_METHOD ^GET$
RewriteRule ^/diary/adiary.cgi$ /diary/ [R=301,L]
RewriteRule ^/diary/adiary.cgi/+([0-9].*)?$ /diary/$1 [R=301,L]

2番目もGETのみに制限するためには、以下の通りに記載するべきである。

RewriteCond %REQUEST_METHOD ^GET$
RewriteRule ^/diary/adiary.cgi$ /diary/ [R=301,L]
RewriteCond %REQUEST_METHOD ^GET$
RewriteRule ^/diary/adiary.cgi/+([0-9].*)?$ /diary/$1 [R=301,L]

罠2. Mod_rewrite と Alias, ScriptAlias, Redirect などを併用するためには、[PT] フラグを指定する必要がある。Mod_rewrite で出来る処理であれば、それだけで完結させる方が良いかもしれない。


#  非公開コメント   

  • TB-URL(確認後に公開)  http://diary.asuka.net/02/tb/
© 2007 HIRATA Yasuyuki <yasu@asuka.net>, all rights reserved