如何用htaccess将加号(+)转换为“= +”?

时间:2011-12-09 13:59:23

标签: php .htaccess mod-rewrite url-rewriting

我想将包含“+”的每个网址转换为“= +”

例如url:

http://www.bedavaemlaksitesi.com/mersinemlakrehberi210/index3.php?+  

应该是这样的:

http://www.bedavaemlaksitesi.com/mersinemlakrehberi210/index3.php?=+

试过这个和其他几条线但到目前为止无法工作,我猜它会导致一个循环或其他东西。

RewriteRule ^([^/\.]+)+([^/\.]+)?$ $1=+$2 [R]

1 个答案:

答案 0 :(得分:1)

我只想给你一个特定例子的字面答案。不确定这是否真的会帮助你:

 RewriteCond  %{QUERY_STRING}  ^([+])$
 RewriteRule  /index3.php$  index3.php?=(%1)  [R,L]

你不能在QS中补充每个+,因为你需要一个单独的条件来匹配它。


还有关于你原来的规则:

RewriteRule ^([^/\.]+)+([^/\.]+)?$ $1=+$2 [R]

转义charclass中的点是多余的,[^/.]就足够了。并且您需要在两个组/之间至少有一个分隔符才有意义。但是你无法匹配那里的query_string,它与当前文件路径分开处理。

请参阅alsos:ServerFault: Everything You Ever Wanted to Know about Mod_Rewrite Rules but Were Afraid to Ask? - 和 - HttpdWiki: Manipulating the Query String