私はApache Rewritesにかなり慣れていないので、これはおそらく簡単な質問です(直接の答えを見つけるのはそれほど簡単ではありません).
だから私は次のリライトを持っています:
RewriteCond %{QUERY_STRING} ^parm=([a-z]+)$ [NC]
RewriteRule ^path/to/some_script.php /simple-url-$1.html? [R=301,L]
テストでは期待どおりに機能しているように見えます:
www.mydomain.com/path/to/some/script.php?parm=foo
正しく 301 から:
www.mydomain.com/simple-url-foo.html
ただし、スクリプトを明示的に定義する RewriteCond がない場合、some_script.php に対するものであるかどうかに関係なく、すべてのリクエストでこの条件がチェックされ、Apache に不要な負荷がかかることが懸念されます。
これは事実ですか?もしそうなら、この場合に REQUEST_URI を使用する方法を理解するのに問題があります.IE:
RewriteCond %{REQUEST_URI} ^path/to/some_script.php [NC]
RewriteCond %{QUERY_STRING} ^parm=([a-z]+)$ [NC]
RewriteRule ^path/to/some_script.php /simple-url-$1.html? [R=301,L]
上記は機能していないようで、その理由はわかりません。ポインタはありますか?