使用.regex&;htaccess使用添加的查询字符串访问新URL
尝试使用regex和.htaccess重定向旧网站日志存档,以便使用包含类别筛选器的查询字符串在新网站的主存档下找到 我正在努力使以下重定向工作使用.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次 因此,如果要在字符
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]