如何从查询string的URL中间删除一个斜杠?

我有一些域redirect指向我的服务器上的页面,他们在文件名后面但在查询string之前粘贴一个尾部的斜杠。 所以这:

http://hydesim.com?dll=40.71427,-74.00597&yd=10&zm=12&op=156

变成这个:

http://meyerweb.com/eric/tools/gmap/hydesim.html/?dll=40.71427,-74.00597&yd=10&zm=12&op=156

而不是这个:

http://meyerweb.com/eric/tools/gmap/hydesim.html?dll=40.71427,-74.00597&yd=10&zm=12&op=156

那么如何在保留查询string的同时删除URL中间的斜杠呢? 我试过一些.htaccess方法,但似乎没有工作。 最近的尝试是:

RewriteRule ^(.+)html/(.+)$ /$1html$2 [R=301,L]

[更新:该规则不起作用,所以我禁用它,现在没有重写有效。]我不是很有经验的mod_rewrite ,你可能已经猜到了。 任何帮助非常感谢!

Apache的mod_rewrite与其RewriteRules中的查询string不匹配。 如果您没有redirect到指定查询string的URL,则甚至不需要QSA。 我在Apache 2.2.22(OS X Lion的本地版本)上进行了本地testing,并且工作正常。

 RewriteRule ^(.+)html/$ /$1html [R=301,L] 

编辑:如果您将.htaccess放在gmap目录中,则必须在其中使用以下内容:

 RewriteEngine On RewriteBase /eric/tools/gmap/ RewriteRule ^(.+)html/$ $1html [R=301,L] 

使用QSA(“查询string追加”)标志,而不是试图parsing它自己。 就像是:

RewriteRule ^(.+)html/(.+)$ /$1html [R=301,L,QSA]