我试图添加一些从旧域redirect到新的域名,我已经在我的虚拟主机文件中使用简单的301redirect,如:
<VirtualHost *:8080> ServerName olddomain.com ServerAlias www.olddomain.com Redirect 301 / http://www.newdomain.com/ </VirtualHost>
然而,这是不工作在我的虚拟主机文件,我认为是因为在Apache前面运行Varnish服务器,但不知道如何解决它。 主站点在同一个虚拟主机文件中使用相同的端口,例如:
<VirtualHost *:8080> ServerName www.newdomain.com ... </VirtualHost>
我错过了什么? 我已经尝试使用清漆configuration文件来添加redirect在那里,但遇到问题 – 是最好的select?
我仍然不清楚为什么上面的apache虚拟主机没有被识别,也许是由于varnish vcl文件中的东西,截获它,但我能够解决这个问题,最终通过在那里添加一个redirect,按照这里的说明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); } }