Я искал, и есть много людей с той же проблемой, но нет четкого решения (или, по крайней мере, я его не нашел).
Я использую Varnish-Cache (3.0) в качестве обратного прокси, прослушивающего порт 80 для веб-сервера Apache 2, прослушивающего порт 88.
Если я запрашиваю следующий URL-адрес, он работает нормально: http: // сервер / материал /
Но, если я прошу это: http: // сервер / материал (без «/» в конце) браузер перенаправляется на порт серверной части Apache (http: // сервер: 88 / вещи /).
Как я могу настроить поведение Apache 2 в этой ситуации?
Заранее спасибо!
Проверьте директиву UseCanonicalName на httpd.conf
#
# UseCanonicalName: Determines how Apache constructs self-referencing
# URLs and the SERVER_NAME and SERVER_PORT variables.
# When set "Off", Apache will use the Hostname and Port supplied
# by the client. When set "On", Apache will use the value of the
# ServerName directive.
#
UseCanonicalName Off
Так же можно удалить на лак, попробуй так:
sub vcl_fetch {
if (beresp.status == 301 || beresp.status == 302)
{
set beresp.http.Location = regsub(beresp.http.Location, "^(\w+://[^/]+):\d+", "\1");
}
}