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

Установить заголовок ответа на веб-сервере Lighttpd

Мне интересно, как я отправляю ответ HTTP 501 (не реализовано) на веб-сервере Lighttpd, когда кто-то пытается получить доступ к нашему api.mydomain.com через не-ssl.

Проверка у нас есть, но мы не видим, как на самом деле отправить ответ HTTP 501.

$HTTP["host"] =~ "api\.mydomain\.com$" {
        $HTTP["scheme"] == "http" {
                //// HOW DO WE SEND BACK HTTP RESPONSE 501
        }
}

Способ lighttpd:

С конфигурационным файлом я знаю только об ошибках 404. Чтобы отправить «нереализованный» ответ, вы можете использовать lighttpd mod Magnet (и установить LUA), а затем:

В конфигурационном файле:

$HTTP["host"] =~ "api\.mydomain\.com$" {
        $HTTP["scheme"] == "http" {
            magnet.attract-physical-path-to = ("/path/to/501.lua")
        }
}

Обратите внимание, что "/path/to/501.lua" должен быть доступен для чтения lighttpd. Затем в файле 501.lua:

lighty.content = { { filename = "/path-to-your/501.html" } }
lighty.header["Content-Type"] = "text/html" 
return 501

Очень сложно просто отправить 501 ... не так ли?

Альтернативный способ:

Если у вас уже есть динамический язык, подключенный к fastcgi и т. Д., Вы можете реализовать ответы на ошибки (скажем, 501.php), которые делают то, что делает сценарий .lua:

  • Отправьте правильный HTTP-ответ (возможно на любом "веб-языке")
  • Печатайте правильные заголовки (возможно на любом "веб-языке")
  • Распечатайте правильный HTML-код, шаблон или статический файл (возможно на любом "веб-языке")

И используйте их там, где это необходимо.