使用.regex&;htaccess使用添加的查询字符串访问新URL

使用.regex&;htaccess使用添加的查询字符串访问新URL,regex,.htaccess,mod-rewrite,rewrite,query-string,Regex,.htaccess,Mod Rewrite,Rewrite,Query String,尝试使用regex和.htaccess重定向旧网站日志存档,以便使用包含类别筛选器的查询字符串在新网站的主存档下找到 我正在努力使以下重定向工作 RewriteRule ^blog/2012/04 http://example.com/2012/04?cat=306,10,11 [R=301,L] 如何使用regex和.htaccess识别目标URL查询字符串中的??该?是正则表达式中的特殊字符。它是一个量词,使前面的字符“可选”表示它可以在那里或不在那里==>匹配0或1次 因此,如果要在字符

尝试使用regex和.htaccess重定向旧网站日志存档,以便使用包含类别筛选器的查询字符串在新网站的主存档下找到

我正在努力使以下重定向工作

RewriteRule ^blog/2012/04 http://example.com/2012/04?cat=306,10,11 [R=301,L]

如何使用regex和.htaccess识别目标URL查询字符串中的

是正则表达式中的特殊字符。它是一个量词,使前面的字符“可选”表示它可以在那里或不在那里==>匹配0或1次

因此,如果要在字符串中逐字匹配,必须使用反斜杠将其转义:

RewriteRule ^blog/2012/04 http://example\.com/2012/04\?cat=306,10,11 [R=301,L]

顺便说一句,点
也一样。它是一个特殊字符,可以匹配任何字符,因此如果它匹配一个点,则将其转义。

您的重写规则由3个部分组成,每个部分以空格分隔

the regex: ^blog/2012/04

the target: http://example\.com/2012/04\?cat=306,10,11

flags: [R=301,L]
没有应用于目标的正则表达式

如果要将查询字符串从源url传递到目标url,可以执行以下操作:

RewriteCond %{QUERY_STRING} (.*)
RewriteRule ^blog/2012/04$ http://example.com/2012/04?%1 [R=301,L]