我正在尝试使用以下方式向 index.html 发送任何请求lighttpd为了防止 404,但我不够聪明,因为要么重定向匹配自身,要么对于子目录的调用,虽然 index.html 得到了服务,但它不是从文档根目录提供的,所以所有路径都关闭,因此没有显示任何图像。
$HTTP["host"] == "my.example.com" {
server.document-root = "/var/www/my/html/"
# url.rewrite-once = ( "^/([^\./]+)/?([^\./]+)?(/|\.html)?$" => "/index.php?a=$1&b=$2" )
# url.rewrite-once = ( "^.+?" => "/" )
# url.redirect = ( ".*" => "http://my.example.com/index.html" ) # too many redirects
}
答案1
谷歌搜索了一下,你得出的结论是:
server.error-handler-404 = "/index.html"
不,我不想处理错误。我希望所有请求都转到 /index.html
您说您想防止出现 404,这将实现这一点。当错误被处理时,它默认返回 200 状态代码。
这对于 my.example.com/some/thing.ext 也失败了,因为页面是从 /some/ 发送的,所以所有路径都关闭了。
不,它不会失败 - 它会将所有未命中重定向到/index.html
。也就是说,尝试:
url.rewrite-once = ( "^/(.*)" => "/index.html" )
这样就可以将任何 URL 重写为/index.html
。