如果URL中的主机名/端口后存在双斜杠,则剥离为单斜杠

时间:2015-09-29 13:25:01

标签: regex mod-rewrite

我有一个Web应用程序,可以接受来自桌面应用程序的上传。在配置中,用户指定要上载到的服务器路径的URL。

我的问题是,如果用户在URL配置中包含尾部斜杠,则最终会破坏发布功能。如果在主机名/端口之后存在双斜杠,我怎么才能剥离双斜杠?这种情况的原因是我们在URL中编码特殊字符,包括正斜杠和反斜杠。

例如,在桌面配置

http://sub.company.com  
http://localhost:8888
http://sub.company.com/ 
http://localhost:8888/

我们有一个附加的REST网址,因此上面发布的网址实际上是

http://sub.company.com/server/rest/publish --> Valid, no trailing slash in config
http://localhost:8888/server/rest/publish --> Valid
http://sub.company.com//server/rest/publish --> Returns a 404
http://localhost:8888//server/rest/publish -- Returns 404

是否有正则表达式去除双斜杠并在主机名/端口后面插入一个斜杠?

1 个答案:

答案 0 :(得分:0)

这样的东西会匹配你正在寻找它的位置有一个双斜线的线

(https?://[^:]*[:0-9]*)//(.*)

然后您可以用

替换它
\1/\2