.htaccess 重定向htaccess-php

.htaccess 重定向htaccess-php,.htaccess,redirect,.htaccess,Redirect,我想用htaccess重定向此页面 products_filter.php?f16%5B0%5D=bla+bla+bla&cPath=72&M_ID=12x 到 我试过这个(还有很多其他方法) 我在这里做错了什么?问题是在这个正则表达式中使用$(输入结束): RewriteCond %{QUERY_STRING} ^f16%5B0%5D=bla+bla+bla$ 因为您的查询字符串是:16%5B0%5D=bla+bla+bla&cPath=72&M_ID=12x 将该行更改为

我想用htaccess重定向此页面

products_filter.php?f16%5B0%5D=bla+bla+bla&cPath=72&M_ID=12x

我试过这个(还有很多其他方法)


我在这里做错了什么?

问题是在这个正则表达式中使用
$
(输入结束):

RewriteCond %{QUERY_STRING} ^f16%5B0%5D=bla+bla+bla$
因为您的查询字符串是:
16%5B0%5D=bla+bla+bla&cPath=72&M_ID=12x

将该行更改为:

RewriteCond %{QUERY_STRING} ^f16%5B0%5D=bla+bla+bla(&|$)
更新:

看着你的问题,我意识到你使用了很多需要转义的特殊字符

RewriteCond %{QUERY_STRING} ^(f16%5B0%5D)=bla\+bla\+bla(?:&(.*)|$) [NC]
RewriteRule ^(products_filter\.php)$ /$1?%1=bla+bla&%2 [L,R=301,NE] 

PS:在这里使用NE标志很重要。否则,Apache将对
%5B
%5D
进行进一步编码。

问题在于在此正则表达式中使用
$
(输入结束):

RewriteCond %{QUERY_STRING} ^f16%5B0%5D=bla+bla+bla$
因为您的查询字符串是:
16%5B0%5D=bla+bla+bla&cPath=72&M_ID=12x

将该行更改为:

RewriteCond %{QUERY_STRING} ^f16%5B0%5D=bla+bla+bla(&|$)
更新:

看着你的问题,我意识到你使用了很多需要转义的特殊字符

RewriteCond %{QUERY_STRING} ^(f16%5B0%5D)=bla\+bla\+bla(?:&(.*)|$) [NC]
RewriteRule ^(products_filter\.php)$ /$1?%1=bla+bla&%2 [L,R=301,NE] 
PS:在这里使用NE标志很重要。否则,Apache将对
%5B
%5D
进行进一步编码。

请尝试以下代码:

RewriteCond %{QUERY_STRING} ^f16%5B0%5D=bla+bla+bla
RewriteRule ^products_filter\.php$ http://www.example.com/products_filter.php?f16%5B0%5D=bla+bla&cPath=72&M_ID=12x [L,R=301] 
请尝试以下代码:

RewriteCond %{QUERY_STRING} ^f16%5B0%5D=bla+bla+bla
RewriteRule ^products_filter\.php$ http://www.example.com/products_filter.php?f16%5B0%5D=bla+bla&cPath=72&M_ID=12x [L,R=301] 

嗯,看着你的问题,我意识到你使用了很多需要转义的特殊字符。看看我编辑的版本。嗯,看看你的问题,我意识到你使用了很多需要转义的特殊字符。查看我编辑的版本。