2010-05-14 55 views
1

我想更換這樣的電話:htaccess的國防部重寫http://變更WWW到http:/ WWW

www.mysite.com/sub/file.php?param1=x&param2=http://www.someurl.com

有:

www.mysite.com/sub/param1/param2

參數1是一個整數編號參數2是一個網址

我在htaccess中寫了這個重寫規則:

RewriteCond %{REQUEST_URI} \/sub\/ 
RewriteRule sub\/([0-9]+)\/(.*)$ sub\/file.php?param1=$2&param2=$1 [L] 

不幸的是param2(URL)以http:/www.someurl.com開頭,而不是http://www.someurl.com(注意單斜槓)。

任何想法是什麼原因造成的?當我使用格式爲www.mysite.com/sub/file.php?param1=x&param2=http://www.someurl.com的相同參數調用同一個文件時,param2確實顯示爲OK,因此它必須是重寫規則中的某些內容。

回答

2

你需要抓住從THE_REQUEST值:

RewriteCond %{THE_REQUEST} ^[A-Z]+\ /sub/[0-9]+/([^?\ ]+) 
RewriteRule ^sub/([0-9]+)/ sub/file.php?param1=$1&param2=%1 [L] 
相關問題