由于htaccess,无法访问php $ _GET变量

时间:2012-08-30 17:09:32

标签: .htaccess url-rewriting

我正在为我的网络应用程序使用此.htaccess代码,它工作正常,但我无法访问$_GET变量。

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d


RewriteRule ^(.*)/(.*)/(.*)/$ index.php?$1&p=$2&id=$3 [L]
RewriteRule ^(.*)/(.*)/$ index.php?$1&p=$2 [L]
RewriteRule ^(.*)/$ index.php?$1

我现在使用的网址是http://www.website.com/mainpage/subpage/id/但是,如果我这样做http://www.website.com/mainpage/subpage/id/?template=new,我无法访问$_GET['template']变量,我很确定htaccess导致此问题但我不知道如何继续前进。

1 个答案:

答案 0 :(得分:3)

您需要添加QSA标志,以便将查询字符串附加到重写目标的末尾:

RewriteRule ^(.*)/(.*)/(.*)/$ index.php?$1&p=$2&id=$3 [L,QSA]
RewriteRule ^(.*)/(.*)/$ index.php?$1&p=$2 [L,QSA]
RewriteRule ^(.*)/$ index.php?$1 [L,QSA]