外部应用使用以下网址调用我的网站: 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]
答案 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"
必须承认我没有看到它在我的最终工作,但它应该几乎在那里 - 启用重写日志,以便它可以更容易调试