次の形式の書き換えルールがあります。
RewriteRule ^foo/([a-zA-Z0-9]+)$ foo.php?arg=$1 [qsa,nc]
フォームのURLを受け取り、次のよう/foo/bar
に変更します/foo.php?arg=bar
ローカルで正しく動作し、古いホストでも動作しますが、新しいホスト(ubuntuを実行)に移動したため、動作が異なります。
新しいホストでは、Apacheはfoo.phpがあることに気づき、それを直接呼び出します。つまり、フォームのURLは。/foo/bar
として表示され/foo.php
ます。名前foo.php
をfoo_junk.php
変更して書き換えルールを次のように変更した場合
RewriteRule ^foo/([a-zA-Z0-9]+)$ foo_junk.php?arg=$1 [qsa,nc]
その後、それはすべて機能します。したがって、オーバーライドを有効にしなかったわけでも、mod_rewriteなどをインストールできなかったわけでもありません。書き換えは機能します。URLを解決するプロセスの別の時点で、ローカルとは異なる時点で行われているだけです。
このための構成オプションはありますか?