从查询字符串中删除第二个问号

remove second question mark from query string

我在创建链接时犯了一个错误。我更正了它,但现在仍然有一些链接可能看起来像这样:

http://www.domain.com/?page=1?date=29062015&id=778

我想使用 rewriteEngine 将我的用户重定向到:

http://www.domain.com/?page=1&date=29062015&id=778

我四处搜索并尝试了以下方法,但它不起作用:

 RewriteEngine On
 RewriteCond %{QUERY_STRING} ^(.*)\?(.*)$
 RewriteRule ^\/ ^\/\& [L,R=301]

我应该在这里更改什么?

我对你的规则稍作修改,希望对解决问题有所帮助:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^(.*)\?(.*)$
RewriteRule (.*) ?%1&%2 [L,R=301]

注意%1和%2是对前面RewriteCond(查询字符串条件)中正则表达式匹配部分的反向引用。

这里是关于重写查询字符串的好文章:https://wiki.apache.org/httpd/RewriteQueryString