mod_rewriteでURLを書き換えたい時に、以下のケースで困りました。
https://hogehoge.com/BBB/CCC/DDD/
でアクセスしてきた時には、
https://hogehoge.com/AAA.php?HOGE=$1&HUGA=$2
としたい。
且つ
https://hogehoge.com/BBB/
でアクセスしてきた時には、
https://hogehoge.com/AAA.php
を読ませたい。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/BBB/
RewriteRule ^/BBB/ /AAA\.php [L]
RewriteCond %{REQUEST_URI} ^/BBB/([a-z_]+)/([0-9]+)/
RewriteRule ^/BBB/([a-z_]+)/([0-9]+)/+ /AAA\.php?CCC=$1&DDD=$2 [L]
</IfModule>
どちらも同じPHPを読ませるので上記の記述で良いと思ったけど、mod_rewriteのレスポンスがものすごく悪く、ページの表示に5秒ほどかかるようになってしまいました。
しっかり、RewriteCondの末尾を書かないと行けないらしい。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/BBB/$
RewriteRule ^/BBB/ /AAA\.php [L]
RewriteCond %{REQUEST_URI} ^/BBB/([a-z_]+)/([0-9]+)/$
RewriteRule ^/BBB/([a-z_]+)/([0-9]+)/+ /AAA\.php?CCC=$1&DDD=$2 [L]
</IfModule>
上記の様に$をつけたところ正常なレスポンスになりましした。