htaccess和mod_rewrite使用多个查询字符串

时间:2012-06-23 14:11:46

标签: .htaccess mod-rewrite query-string

我目前正在使用htaccess使用以下内容将单个查询字符串重写为其页面名称,并且工作正常......

 Options +FollowSymLinks


RewriteEngine on
  RewriteBase /

  RewriteCond %{HTTP_HOST} !^www\.
  RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

  # Rewrites urls in the form of /parent/child/
  # but only rewrites if the requested URL is not a file or directory
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.+)$ /index.php?page=$1 [QSA]

我的问题是我现在正试图在原始版本之上实现额外的查询字符串。我可以/property-listing&property=12-Langworthy-Royston-Grove

成功访问该页面

但是我希望能够重写&property=只是一个正斜杠,所以基本上删除额外的querystring参数,同时保持正常的重写规则,如果没有传递额外的查询字符串参数。

感谢您的帮助,

1 个答案:

答案 0 :(得分:0)

尝试在最后一次添加此规则:

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

但请注意,这仅在&property=是URI的一部分时(在您显示的示例中)才有效,因为它只是作为重写规则主题的URI,而不是查询字符串。