Url rewriting URL重写缺少$\u GET参数
我目前很难弄清楚为什么我的url重写没有持久化请求(get)参数。 这是一个示例url: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&
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”}