すべてをindex.phpにリダイレクトしたいので、これでうまくいくと思いました:
RewriteEngine on
RewriteRule ^(.*)$ /index.php?url=$1 [L]
..しかし、そうではありません。ただし、この非常によく似た RewriteRule は機能します。
RewriteEngine on
RewriteRule matches/(.*) /index.php?url=$1 [L]
後で、最初のものを機能させるには次のことが必要であることがわかりました。
RewriteCond %{REQUEST_FILENAME} !-f
前者の例では最後の RewriteCond が必要で、後者では必要ない理由を説明してもらえますか?