1

Mac OS X (10.8) 開発用コンピュータで奇妙な問題が発生しています。mod_rewrite をオンに設定しましたが、特定の状況では機能するようです。現在、動作させようとしているテスト ルールが 1 つありますが、ルールを変更して望ましくないことを行わない限り、機能しません。

ルールは次のとおりです。

RewriteRule ^driver/([0-9]+)$ driver.php?d=$1 [L]

ここで、ドライバー/411 に電話をかけようとすると、. Apache が行っているように見えるのは、GET パラメータを指定せずに driver.php を呼び出し、.htaccess ルールを完全に無視していることです。ハードコーディングされた値を含むこのルールも失敗するため、これが正しいことはわかっています。

RewriteRule ^driver/([0-9]+)$ driver.php?d=411 [L]

ただし、探しているプレフィックスをファイル名のプレフィックスと一致しないように置き換えると、次のように機能します。

RewriteRule ^driverz/([0-9]+)$ driver.php?d=$1 [L]

この動作を行わないようにApacheに指示する方法を知っている人はいますか?

4

1 に答える 1

2

これは、mod_rewrite get が適用される前に、MultiView が内部的に driver.php にリダイレクトされるためです。したがって、GET パラメータはありません。

htaccess に以下を追加して MultiViews を無効にします。

Options -MultiViews

(PS Apacheはデフォルトでこれを無効にする必要があります。マルチビューを使用する人)

于 2013-01-23T19:49:13.870 に答える