apache(mod書き換え)で以下のことをしたいです。
ユーザーがhttp://hostname.tld/index.php/folder/subfolderを要求した場合、 (R=301 で) http://hostname.tld/folder/subfolderにリダイレクトします。
ユーザーがhttp://hostname.tld/folder/subfolderをリクエストした場合、リクエストは内部で index.php/folder/subfolder に書き換えられる必要があります。
エンドレス リダイレクトを防ぐには、最初のルールで %{THE_REQUEST} を確認する必要があります。ここでの問題は、「フォルダー/サブフォルダー」に正規表現を追加できないことです。どうすればいいですか?
2番目のルールについては、これがあります(そしてうまくいくようです)。
RewriteCond %{HTTP_HOST} hostname.tld [NC]
RewriteRule ^(.*)$ index.php [QSA,L]
最初のものはまだ問題です。
最初のものは次のようなものであるべきだと思います
RewriteCond %{THE_REQUEST} (.*)index.php(.*) [NC]
RewriteRule /index.php/$ http://hostname.tld/$1 [R=301,QSA,L]
しかし、それだけではありません。