2011-02-17 33 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