我们已经迁移了一个旧站点,并且在域名保持不变的情况下,有数百个旧站点中的旧URL具有我们要保留的SEO值并重定向到新站点。
https://www.mysite.co.uk
/ https://mysite.co.uk
上运行https://[language_code].mysite.co.uk/[page]
例如,https://it.mysite.co.uk/banana
应该重定向到https://mysite.co.uk/it/foo/bar/banana
我认为我需要创建一个额外的服务器块来处理*.mysite.co.uk
(在服务server_name mysite.co.uk www.mysite.co.uk
的服务器块之后,以至于www
的网址不会被它捕获)然后使用正则表达式进行重定向,例如:
server {
listen 443 ssl;
server_name *.mysite.co.uk;
rewrite ... permanent;
}
我不知道如何处理该重写,而且我是否必须为所有这些语言环境子域生成SSL证书,还是在需要加载证书之前进行重定向?
答案 0 :(得分:0)
这些语言子域将需要有效的证书,以便客户端的浏览器接受重定向到您的新网站。由于它们位于同一主域下,因此可以使用通配符证书。
正则表达式server_name
可用于从主机名中提取语言代码,以便可用于构造新的URL。
例如:
server {
listen 443 ssl;
server_name ~^(?<lang>..)\.example\.com$;
ssl_certificate ...;
ssl_certificate_key ...;
return 301 $scheme://example.com/$lang/foo/bar$request_uri;
}
有关详细信息,请参见this document。