2011-12-29 66 views
0

我在我的.htaccess文件這個重寫規則,但在PHP,當我得到的網址($ _ GET [「鏈接」])的剔除從http斜線之一://重寫規則剝離字符

RewriteRule ^details/([0-9]+)/(.*)$ details/index.php?urlid=$1&url=$2 [L,QSA] 

如果URL http://foo.com/details/12345/http://www.bar.com/dsfkjds,PHP看到HTTP:/www.bar.com/dsfkjds

我不知道這是否是PHP,正則表達式或Apache的問題。任何幫助表示感謝,謝謝!

+0

只是做一個'str_replace('http:/','http://',$ _GET ['url'])' – Gerben 2011-12-29 16:05:34

回答

2

這是Apache規範化路徑段。 RewriteRule檢測或更改它爲時已晚。

然而,您可以在$_SERVER["REQUEST_URI"]中看到原始請求URL,並再次應用您的正則表達式以查看完整參數。

preg_match("#^/+details/+([0-9]+)/+(.*)$#", $_SERVER["REQUEST_URI"], $m) 
and $url = $m[2];