.htaccess重定向查询字符串

时间:2012-06-11 15:41:37

标签: .htaccess

我正在尝试做一个非常简单的重定向。我们正在从独立的Wordpress安装转移到Multisite Wordpress安装,我正在尝试让重定向工作用于包含查询字符串的页面。这是我到目前为止的代码:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.domain\.com$ [NC]
RewriteRule ^advise/index_pt(.*)$ http://domain.com/advise/pennies-to-millions/$1 [NE,L,R=301]

基本上,这就是我想要的:(有或没有www)

* .domain.com/advise/index_pt.php?(parameters)=> * .domain.com /提醒/便士到百万/?(参数)

感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

查询字符串不是用于在RewriteRule指令中匹配的URI的一部分。因此,您无法在RewriteRule内使用正则表达式来匹配它们。如果您需要匹配它们,可以在规则之前使用RewriteCond %{QUERY_STRING} <regex>。但是,如果您不通过在规则的目标中使用创建任何新的查询字符串,则会自动附加查询字符串。您可以删除规则中的所有反向引用,并在 www 周围添加parens以使其成为可选项。

RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC]
RewriteRule ^advise/index_pt.php$ http://domain.com/advise/pennies-to-millions/ [NE,L,R=301]