我想将网站始终重定向到 www.site.com。但是,我不确定如何让 WWW 始终显示在最前面,如果有人输入不带 www 的域名。
编辑:
server {
listen 80;
server_name site.com;
rewrite ^(.*) https://www.site.com$1 permanent;
}
server {
listen 80;
server_name www.site.com;
#rewrite ^(.*) https://www.site.com$1 permanent;
root /home/site/public_html;
listen 443 ssl;
如果我输入 site.com,它会转到https://www.site.com
= SUCCESS
如果我输入 site.com/index.php 它会转到http://www.site.com
= NO SSL
有想法吗?
答案1
你的方法很困难。这是简单的方法。
server {
listen 80;
server_name example.com;
rewrite ^(.*) http://www.example.com$1 permanent;
}
server {
listen 80;
server_name www.example.com;
#The rest of your configuration goes here#
}
答案2
最好使用return
而不是rewrite
,因为它更快。
server {
listen 80;
server_name example.com;
return 301 http://www.example.com$request_uri;
}
server {
listen 80;
server_name www.example.com;
[...]
}
这样,我们还向客户端发送适当的状态代码,以便他在下一个请求中询问正确的域。