我想将包含“+”的每个网址转换为“= +”
例如url:
http://www.bedavaemlaksitesi.com/mersinemlakrehberi210/index3.php?+
应该是这样的:
http://www.bedavaemlaksitesi.com/mersinemlakrehberi210/index3.php?=+
试过这个和其他几条线但到目前为止无法工作,我猜它会导致一个循环或其他东西。
RewriteRule ^([^/\.]+)+([^/\.]+)?$ $1=+$2 [R]
答案 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