2

ブログ用の mod_rewrite ルールを作成しました。このルールはローカル サーバーで最終的に機能しますが、ライブ サーバーにアップロードすると $_GET 変数が渡されません。問題を最も単純な形に分解することができました。mod_rewrite は次のとおりです。

RewriteEngine on
RewriteRule ^test/([^/\.]+)$ test.php?var=$1 [QSA]

ファイル test.php はサイトのルートにあり、次のコードが含まれています。

echo '<pre>';
print_r($_GET);
echo '</pre>';

したがって、ローカルサーバーで mysite.co.uk/test/hello にアクセスすると、

Array
(
    [var] => hello
)

私が期待するように。しかし、ライブ サイトを試してみると、$_GET 変数がないだけで、まだ test.php ページにリダイレクトされます。

Array
(
)

誰にもこれを引き起こす可能性のあるアイデアはありますか? これを機能させようとしているときに、奇妙な出来事がたくさん発生しました。提案をいただければ幸いです。

4

1 に答える 1

8

これは、Apache でオプションをContent Negotiationオンにしたためです。MultVIews

この行をあなたの上に置き、.htaccessオフにしますMultiViews

Options +FollowSymLinks -MultiViews
于 2013-10-14T05:28:41.630 に答える