我有一个 domiy.com 网站,现在我要将其名称更改为 namedar.com。我想对所有针对 domiy.com(或 nametyper.com)的请求进行 301 重定向,以便它们返回请求 URI 完整的 namedar.com。
我尝试过简单地将所有内容重定向到namedar.com,但是当请求到达namedar.com时,这会导致重定向循环。
rewrite ^ $scheme://nametyper.com$request_uri permanent; # Doesn't work
我还想保持配置设置,以便所有“www”请求都重定向到非 www 版本。
我nginx.conf
现在的样子是这样的:
server {
server_name namedar.com www.namedar.com domiy.com www.domiy.com nametyper.com www.nametyper.com;
# Remove all 'www.' prefixes.
if ($host ~* www\.(.*)) {
set $host_without_www $1;
rewrite ^(.*)$ $scheme://$host_without_www$1 permanent;
}
}
我该如何编写rewrite
指令来实现这一点?
答案1
请让我将您的顾虑分为两个步骤......
步骤 1:将 www 改为非 www
服务器 { 服务器名称 www.域名.com; 返回 301 $scheme://domainname.com$request_uri; } 服务器 { 服务器名称域名.com; # [...] 常规块和指令 }
第 2 步:first_domain.com 到 second_domain.com
服务器 { 服务器名称 first_domain.com www.first_domain.com; 返回 301 $scheme://second_domain.com$request_uri; }
您可以修改上述步骤,使其适用于任意数量的域。此外,您还可以将两者结合起来,在一个步骤中完成。
顺便说一下,在 Nginx 中,如果被视为邪恶。