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

перенаправление запросов HTTPS на http в lighttpd

У меня работает сервер lighttpd с установленным сертификатом SSL. По определенным причинам я хотел бы переслать все https: // www. запросы к http: // www.

Мой код lighttpd выглядит следующим образом:

$SERVER["socket"] == ":443"
{
   ssl.engine = "enable"
   ssl.pemfile = "/path/to/pem/file"
   ssl.ca-file = "/path/to/ca/file"
   HTTP["host"] =~ "^www\.(.*)$" {
       url.redirect = ("^/(.*)" => "http://www.%1$1")
   }
}

Не могли бы вы указать на проблему здесь? Другое дело, в чем разница между% 1 и $ 1?

Я использовал вот это:

$HTTP["scheme"] == "https" {
        $HTTP["host"] =~ "example.com" {
                url.redirect = ( "^/(.*)" => "http://www.example.com/$1" )
        }
}

Но будьте осторожны, некоторые браузеры имеют в виду, что веб-сайт использует https. Таким образом, он всегда будет пытаться получить доступ к https версия независимо от перенаправления, которое отправляет веб-сервер. Я пробовал этот случай, и Firefox / Chrome сказал мне, что мой сайт переходит в бесконечный цикл перенаправления. Но когда я заворачиваю свой сайт https, Я получил 301 на http. И дальше http 200.

Так что это сложно проверить ...

На ваш второй вопрос, это в документе:

Обратите внимание, что «% 1» в целевом объекте url.redirect относится к заключенному в скобки подвыражению в условном регулярном выражении (. *). Это не обязательно означает, что "% 1" будет иметь в evhost.path-pattern (где это означает "домен верхнего уровня"). Если url.redirect указан в условном выражении регулярного выражения, шаблоны% заменяются соответствующими группами из регулярного выражения условия. % 1 заменяется первым подвыражением,% 2 - вторым и т. Д.% 0 заменяется всей подстрокой, соответствующей регулярному выражению. См. Выше и ниже примеры использования шаблонов%.