mod_rewrite不接受url中的查询

时间:2012-07-20 23:25:56

标签: php mod-rewrite

下面的代码非常出色,但是如果我有一个网址,例如/calgary/dashboard.php?step=change-password,PHP就不会识别$ _GET [' step']

我可以在这里更改什么,以便我可以使用$ _GET ['']

RewriteEngine On
RewriteBase /city_name

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)/$ /city_name/index.php?page=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /([^\./]+)\.php$
RewriteCond %{DOCUMENT_ROOT}/city_name/%1.php -f
RewriteRule ^(.*)/([^\./]+)\.php$ /city_name/$2.php?page=$1 [L]

2 个答案:

答案 0 :(得分:1)

使用QSA,

RewriteRule (.*)/$ /city_name/index.php?page=$1 [L,QSA]

RewriteRule ^(.*)/([^\./]+)\.php$ /city_name/$2.php?page=$1 [L,QSA]

答案 1 :(得分:1)

将查询字符串标志(QSA)添加到规则中应该修复它,例如:

RewriteRule ^(.*)/([^\./]+)\.php$ /city_name/$2.php?page=$1 [QSA,L]