将所有子目录请求重定向到单个文件,且请求的目录完整

将所有子目录请求重定向到单个文件,且请求的目录完整

我希望我的 lighttpd 服务器上有一个目录,将所有请求重定向到主index.php文件,但使用 PHP 能够解释原始请求 URI。

例如,和都www.server.com/directory/foo可以www.server.com/directory/bar运行www.server.com/directory/index.php,但 PHP 上下文将能够看到域(类似于$_SERVER['uri']?)并使用内部 PHP 路由器来确定要做什么。

目前我已尝试了几种变化:

$HTTP["url"] =~ "^/directory/.*" {
    url.redirect = (
        "^/.*/assets/(.*)" => "/dir/assets/$1",
        "^/.*/(.*)" => "/dir/index.php"
    )
}

index.php无法看到原始路线。不过资产功能可以正常工作。谢谢!

答案1

解决了,以防其他人需要:

$HTTP["url"] =~ "^/directory/.*" {
    url.rewrite-once = (
        "^/.*/assets/(.*)" => "/directory/assets/$1",
        "^/[^\?]*(\?.*)?" => "/directory/index.php$1"
    )
}

也转发任何查询参数。

相关内容