从URL中删除第二个问号

时间:2012-10-25 13:02:49

标签: apache .htaccess mod-rewrite

外部应用使用以下网址调用我的网站: http://www.mydomain.com/index.php?route=checkout/success?ref=56

这显然是错误的(因为它有2个问号)。

如何编写.htaccess重写规则以将第二个问号转换为ambersand(&)? (http://www.mydomain.com/index.php?route=checkout/success&ref=56)

我试过这个,但它不起作用。

RewriteEngine on
RewriteRule \? \& [L]

2 个答案:

答案 0 :(得分:1)

经过一些研究,我想出了这个

RewriteCond %{QUERY_STRING} ^(.*)?\?ref=(.*)&?(.*)$
RewriteRule (.*) /$1?%1&ref=%2%3 [L]

我不知道它是否是最好的,但确实有效

答案 1 :(得分:0)

RewriteEngine on
RewriteRule /(.*)?(.*)?ref=(.*)$ /$1?$2&ref=$3  [R]
  RewriteLogLevel 9
RewriteLog "/var/log/rewrite.log"

必须承认我没有看到它在我的最终工作,但它应该几乎在那里 - 启用重写日志,以便它可以更容易调试