лак не срабатывает для www-версии домена

Я установил лак на сервер, на котором работают два сайта в двух разных доменах, лак отлично работает без www перед двумя доменами, я прикрепил файл vcl в этот pastebin, я думаю, что это где-то базовая неправильная конфигурация, но я могу' т выяснить, где - кто-нибудь знает решение?

http://pastebin.com/CF37isis


person user2210889    schedule 07.05.2013    source источник


Ответы (1)


На мой взгляд, конфигурация выглядит нормально, и у вас не должно возникнуть проблем с/без www. Вы уверены, что DNS указывает на ваш сервер лака для www? Конечно, существует также вероятность того, что ваше приложение действует по-другому и устанавливает дополнительные файлы cookie/заголовки в запросе www.

Кроме того, вы действительно должны перенаправить один из www/non-www на другой, чтобы всегда использовался только один, но оба работали (это также легко сделать с помощью лака или, возможно, в настройках вашего DNS-провайдера).

Редирект в лаке может выглядеть примерно так (это не нужно добавлять в текущий vcl_recv/vlc_error и не добавлять новые блоки):

sub vcl_recv {
    if (req.http.host == "www.somedomain.com") {
        set req.http.x-Redir-Url = "http://somedomain.com" + req.url;
        error 750 req.http.x-Redir-Url;
    }
    if (req.http.host == "www.someotherdomain.com") {
        set req.http.x-Redir-Url = "http://someotherdomain.com" + req.url;
        error 750 req.http.x-Redir-Url;
    }
}

sub vcl_error {
    if (obj.status == 750) {
        set obj.http.Location = obj.response;
        set obj.status = 301;
        return (deliver);
    }
}
person Clarence    schedule 09.05.2013
comment
Как будет выглядеть конфиг, чтобы всегда выглядела версия без www? :-) - person user2210889; 09.05.2013
comment
Добавил пример перенаправления в мой ответ выше. - person Clarence; 09.05.2013