2015-09-10 82 views
1

我目前無法弄清楚爲什麼我的url重寫不會持久請求(get)參數。 這是一個示例網址:

http://localhost:8888/testwelt/allgemein?test=1234 

,這是我的lighttpd.conf內重寫:

url.rewrite-once = ( 
    "^(/testwelt/(?!(favicon.ico$|sitemap.xml$|js/|pages/)).*)(\?|$)(.*)" => "/testwelt/index.php?url=$1&$3" 
) 

一個我$_GETvar_dump揭示了這一點:

array(1) { ["url"]=> string(39) "/testwelt/allgemein?test=1234" } 

我不是當涉及到URL重寫時,它太適合了。我究竟做錯了什麼? 謝謝!

+0

大聲笑,這正是你要求的重寫規則:'/testwelt/index.php?url= $ 1&$ ​​3'這個URL最終會以參數'url'結尾。 **你期望得到什麼結果?** – sebix

+0

這個:'array(2){[「url」] => string(39)「/ testwelt/allgemein?test = 1234」,[「test」] => string (4)「1234」}' – puelo

回答

2

我固定我的問題是這樣的:

url.rewrite-once = (
    "^/testwelt/(sitemap.xml$|favicon\.ico$|php/|css/|js/).*" => "$0", 
    "^/testwelt/([^?]*)(?:\?(.*))?" => "/testwelt/index.php?url=$1&$2" 
) 

一點解釋:

  • 第一條規則「防止」改寫爲特定的文件/文件夾被重定向到URL匹配。
  • 第二條規則直到「?」表示url參數的字符。然後它將匹配URL參數並將它們添加到重寫的URL中。