2013-10-09 62 views
1

我有一個簡單的重寫規則至極通過一個簡單的字符串(ATTR「mode」)和一個URL(ATTR target_url)與格式:http://dummypage.com/阿帕奇htaccess的重寫規則中除去雙斜槓無意中

RewriteRule ^test/([^/.]*)/(.*)$ /index.php?mode=$1&target_url=$2 

轉換

mydomain.com/test/stringparam/http://dummypage.com/ 

mydomain.com/index.php?mode=stringparam&target_url=http:/dummypage.com/ 

請注意,它已將http://dummypage.com/更改爲http:/dummypage.com/, 爲什麼它會刪除雙斜槓?

回答

3

您無法使用RewriteRule來匹配這種類型的URI。使用THE_REQUEST變量來匹配它。 THE_REQUEST變量表示Apache從您的瀏覽器收到的原始請求。

RewriteCond %{QUERY_STRING} ^$ 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+test/([^/]+)/([^\s]*)\s [NC] 
RewriteRule^/index.php?mode=%1&target_url=%2 [L,QSA,NE] 
+0

很好,謝謝,tho這是返回e500內部服務器錯誤,任何想法爲什麼? –

+0

對不起。剛編輯過,現在就試試。 – anubhava

+0

更好,現在返回404 :) –