Я пытаюсь добавить несколько перенаправлений со старых доменов на новые домены, которые я сделал перед использованием простых перенаправлений 301 в моих файлах vhost, например:
<VirtualHost *:8080>
ServerName olddomain.com
ServerAlias www.olddomain.com
Redirect 301 / http://www.newdomain.com/
</VirtualHost>
Однако это не работает в моем файле vhost, и я предполагаю, что это из-за сервера Varnish, работающего перед Apache, но не знаю, как это исправить. Основной сайт в том же файле vhost использует тот же порт, например:
<VirtualHost *:8080>
ServerName www.newdomain.com
...
</VirtualHost>
Что мне не хватает? Я пробовал работать с файлом конфигурации varnish, чтобы добавить туда перенаправления, но столкнулся с проблемами - это лучший вариант?
Я до сих пор не понимаю, почему указанный выше vhost apache не распознавался, возможно, из-за чего-то в vcl-файле varnish, который его перехватил, но я смог решить эту проблему, добавив туда перенаправление, следуя инструкциям здесь https://www.varnish-cache.org/trac/wiki/VCLExampleRedirectInVCL
sub vcl_recv {
if (req.http.host ~ "^(www\.)?oldexample\.com$") {
error 750 "http://www.example.com/newlocation";
} else if (req.http.host ~ "^(www\.)?ancientexample\.com$") {
error 750 "http://newsite.com/ancient"
}
}
sub vcl_error {
if (obj.status == 750) {
set obj.http.Location = obj.response;
set obj.status = 302;
return(deliver);
}
}