.htaccess 重定向htaccess-php
我想用htaccess重定向此页面.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 将该行更改为
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]
嗯,看着你的问题,我意识到你使用了很多需要转义的特殊字符。看看我编辑的版本。嗯,看看你的问题,我意识到你使用了很多需要转义的特殊字符。查看我编辑的版本。