0

次の形式の書き換えルールがあります。

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.phpfoo_junk.php変更して書き換えルールを次のように変更した場合

RewriteRule ^foo/([a-zA-Z0-9]+)$ foo_junk.php?arg=$1 [qsa,nc]

その後、それはすべて機能します。したがって、オーバーライドを有効にしなかったわけでも、mod_rewriteなどをインストールできなかったわけでもありません。書き換えは機能します。URLを解決するプロセスの別の時点で、ローカルとは異なる時点で行われているだけです。

このための構成オプションはありますか?

4

1 に答える 1

2

無効にしてみてくださいMultiViews

Options -MultiViews
于 2009-01-19T16:37:27.563 に答える