3

我正在为我的 Web 应用程序使用这个 .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

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

4

1 回答 1

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]
于 2012-08-30T17:55:26.640 回答