我正在尝试做一个非常简单的重定向。我们正在从独立的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 /提醒/便士到百万/?(参数)
感谢任何帮助!
答案 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]