Url rewriting URL重写缺少$\u GET参数

Url rewriting URL重写缺少$\u GET参数,url-rewriting,lighttpd,Url Rewriting,Lighttpd,我目前很难弄清楚为什么我的url重写没有持久化请求(get)参数。 这是一个示例url: http://localhost:8888/testwelt/allgemein?test=1234 这是我在lighttpd.conf中的重写: url.rewrite-once = ( "^(/testwelt/(?!(favicon.ico$|sitemap.xml$|js/|pages/)).*)(\?|$)(.*)" => "/testwelt/index.php?url=$1&

我目前很难弄清楚为什么我的url重写没有持久化请求(get)参数。 这是一个示例url:

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"
)
my
$\u GET的
var\u dump
揭示了以下内容:

array(1) { ["url"]=> string(39) "/testwelt/allgemein?test=1234" }
当涉及到url重写时,我不太适合。我做错了什么?
谢谢大家!

我用这样的方法解决了我的问题:

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

  • 第一条规则通过重定向到URL匹配来“防止”重写特定文件/文件夹
  • 第二条规则匹配到一个“?”字符,该字符指示url参数。然后匹配URL参数并将其添加到重写的URL中

Lol,这正是您从重写规则中请求的:
/testwelt/index.php?url=$1和$3
url将以get参数
url
结束。您期望的结果是什么?这是:
array(2){[“url”]=>string(39)”/testwelt/allgemein?test=1234“,[“test”]=>string(4)“1234”}