2011-02-17 34 views
0

我有网络软件,我需要有网址,这样是否有一些可以从URL过滤掉双斜杠的Apache配置?

http://site.com/page/var1/val1/var2//var3/val3

然后我赶在.htaccess此类URL,重定向到一个PHP文件,然后解析,为$ _GET和向前一切主要应用程序。这个双斜杠很重要,这意味着已经设置了var2并且包含一个空值,换句话说$ var2!== NULL。

在某些服务器上能够正常运行,但在一些服务器上没有的话,该URL被悄悄转化为

http://site.com/page/var1/val1/var2/var3/val3

这当然打破一切,因为它它解析为$ var1 ='val1',$ var2 ='var3',$ val3 =''。

不幸的是,我已经无法访问其中一台服务器,我不记得它是否是Apache,但是让我们假设它是Apache,因为这是我们大部分时间处理的服务器。

是否有一些配置可以控制它?这打开/关闭双斜杠的清洁。

+0

也许你应该想出一个不依赖格式不正确的URI来操作的URL方案。 – 2011-02-17 13:30:39

回答

1

Apache将这些空路径段映射到文件系统之前将其分割。要获得原始的请求的URI中的mod_rewrite,检查请求行%{THE_REQUEST}

RewriteCond %{THE_REQUEST} ^GET\ (/[^?\ ]*) 
RewriteRule … 

然后,您可以参考RewriteCond与之相匹配的%1