我们发现某些电子邮件提供商的客户将分号替换为 %3b,因此我们发送给他们的 URL 变为
http://www.mytestsite.com/connect/vehicles/?rm=view_results%3bmake=BMW%3bmodel=3%20SERIES%3bvehicle_type_desc=Car
但它必须是
http://www.mytestsite.com/connect/vehicles/?rm=view_results;make=BMW;model=3%20SERIES;vehicle_type_desc=Car
我在 httpd.conf 和 .htaccess 文件中尝试了任意数量的配置来解决这个问题,但没有成功。我选择使用 .htacces 文件,这里是我在该文件中的一些尝试。
RewriteCond %{QUERY_STRING} ^[A-Z]+\ /([^?\ ]*)%253b([^?\ ]*)
RewriteRule ^ %1;%2 [R=301,NE,NC,L]
RewriteRule (.*)\%3b(.*)\%3b(.*)\%3b(.*) $1;$2;$3;$4 [R=301,L]
还
RewriteCond %{QUERY_STRING} (.*)(%3b)(.*)
RewriteRule ^%3b %1;%2? [R=301,L,NC,NE
任何详细说明最好使用哪个文件(httpd.conf 或 .htaccess)以及如何实现目标的帮助将不胜感激。谢谢。