.htaccess中的mod_rewrite无法正常工作

时间:2011-10-13 04:18:17

标签: apache .htaccess mod-rewrite

我在一个目录中有一个.htaccess文件,该目录应该将所有请求重定向到query.php,将请求的文件添加为GET var:

RewriteEngine on
RewriteRule ^(.*?)$ query.php?page=$1

应该正常吗?除非我尝试访问anyfile.php,查询.php print_r的$ _GET就像这样:

Array ( [page] => query.php )

我觉得这可能与Apache重写已经重写的网址有什么关系。

简而言之,我正在被重定向,但不知何故,GET var被搞砸了。

任何人都可以帮我一把吗?我已经在这里工作了很长时间,我只是想不出来!

2 个答案:

答案 0 :(得分:1)

不要重新发明轮子,看看别人为此目的使用的东西:

Options -MultiViews
RewriteEngine On
# This line checks whether file exists:
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^ index.php [L]

您将在$_SERVER['REQUEST_URI']中找到页面URI。为query.php交换index.php,你就完成了。

答案 1 :(得分:0)

老实说,我很惊讶你没有收到“太多的重定向”错误。

添加类似以下的RewriteCond应该解决这个问题。

RewriteCond %{REQUEST_URI} !^query\.php