Назад | Перейти на главную страницу

Lighttpd: перенаправить любой запрос на index.html

Я пытаюсь отправить любой запрос в 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
}

Несколько мгновений с Google подсказывают, что вы хотите:

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.