mod_rewriteで無限ループする場合
httpd.confや.htaccessにおいて、
mod_rewriteを利用して動的URLを静的URLに見せかける方法は便利だが、
たまに無限ループするパターンがある。
それは、書き換えた後にまた書き換え処理を起こそうとしているからで、
どこかで停止をかける必要がある。
例えば
/gonzui.cgi/search?q=the_date
を
/search/the_date
でアクセス出来るようにする場合、.htaccessなどでは
RewriteEngine on
RewriteRule ^/search/(.*)$ http://www.4web8.com/search/gonzui.cgi/search?q=$1 [L]
というようにするが、これだけだと、
gonzui.cgiになった後にまた書き換えようとするので、正解は
RewriteEngine on
RewriteRule gonzui.cgi – [L]
RewriteRule ^/search/(.*)$ http://www.4web8.com/search/gonzui.cgi/search?q=$1 [L]
となる。
ディスカッション
コメント一覧
まだ、コメントがありません