.htaccessルールにカスケードの問題があります。次のことを考慮してください。
RewriteEngine on
RewriteRule ^product/(.*)$ product.php [L,QSA]
RewriteRule ^(.*)$ index.php [L]
上記の場合、 http://example.com/product/product-slugのようなURLをリクエストした場合、リクエストはproduct.phpにルーティングされると思います。ただし、そうではありません。私のindex.phpスクリプトがリクエストを取得します。
RewriteRule
私は最初のものが一致するだろうと思っていたでしょう、そしてそれはL
(最後の)フラグを持っているのでRewriteRule
、下部の「キャッチオール」のものを含めて、それ以上一致しないでしょう。
なぜこれが期待どおりに機能しないのですか?