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
)

正如我所料。但是当我在我的实时站点上尝试时,我仍然被重定向到我的 test.php 页面,只是没有 $_GET 变量:

Array
(
)

有没有人有任何想法可能导致这种情况?在尝试使其正常工作时,我遇到了许多奇怪的事件,任何建议都将不胜感激

4

1 回答 1

8

这是由于在 Apache中Content Negotiation打开了我的选项。MultVIews

将此线放在您的顶部.htaccess以关闭MultiViews

Options +FollowSymLinks -MultiViews
于 2013-10-14T05:28:41.630 回答