我在一个目录中有一个.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被搞砸了。
任何人都可以帮我一把吗?我已经在这里工作了很长时间,我只是想不出来!
答案 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