在将 apache .htaccess 中看似简单的重写规则转换为 lighttpd 规则时遇到了一些麻烦。
阿帕奇规则:
RewriteRule (.*) index.php?baseURL=$1 [L,QSA]
本质上,整个 URL 是作为baseURL
参数传递的,当然任何其他给定的参数都会被保留。
一个警告是它应该只适用于单个目录,并且(希望)不要将该目录包含在baseURL
.
目前我在 lighttpd 中拥有的是:
url.rewrite-once = (
"^\/Folder\/(.*)" => "/Folder/index.php?baseURL=$0"
)
这将获取整个 url 并将其作为参数传递,包括\Folder\
和参数,因此http://domain/Folder/test.php?someParam=1
使baseURL
包含/Folder/test.php?someParam=1
我可以在 php 中解析它并使其工作,但关键是在 apache 和 lighttpd 中具有相同的 php 代码。