FAQ Лака предлагает использовать vcl_error для этого (и это - как я сделал его):
Это - VCL по умолчанию для ошибочной страницы:
sub vcl_error {
set obj.http.Content-Type = "text/html; charset=utf-8";
synthetic {"
"} obj.status " " obj.response {"
Error "} obj.status " " obj.response {"
"} obj.response {"
Guru Meditation:
XID: "} req.xid {"
Varnish
"};
return(deliver);
}
если Вы хотите пользовательскую версию, просто переопределяете функцию в Вашей конфигурации и заменяете разметку в synthetic
оператор.
Если Вы хотите иметь другую разметку для различных кодов ошибок, можно сделать это довольно легко также:
sub vcl_error {
set obj.http.Content-Type = "text/html; charset=utf-8";
if (obj.status == 404) {
synthetic {"
"};
} else if (obj.status == 500) {
synthetic {"
"};
} else {
synthetic {"
"};
}
}
Добавление этого в ваше местоположение /
должно привести к тому, что любой запрос с косой чертой в конце загрузит страницу индекса:
rewrite ^/.*/$ / last;
Или, если вы хотите отправить их браузеру ответ перенаправления чтобы их адресная строка указывала на новое местоположение, замените последний
на постоянный
(или перенаправление
, если вы предпочитаете 302 вместо 301).