问个 nginx 配置里面的 域名跳转 301 问题

2020-11-17 22:45:45 +08:00
 python30

问个 nginx 配置里面的 域名跳转 301 问题

想把 www.qqq.com 全部永久 301 重定向到 www.aaa.com 下面是我的 nginx 里面的配置。我下面的代码不成功。不知道正确的怎么实现呢?

server {
        listen 443 ssl;
        server_name www.qqq.com qqq.com;
        ssl_certificate 1_www.qqq.com_bundle.crt;
        ssl_certificate_key 2_www.qqq.com.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;
        charset UTF-8;

        client_max_body_size 75M;
        fastcgi_buffers   8 128k;
        fastcgi_busy_buffers_size 128k;


        location / {
                include uwsgi_params;
                uwsgi_pass 127.0.0.1:12008;
                uwsgi_send_timeout 300;
                uwsgi_connect_timeout 300;
                uwsgi_read_timeout 300;
        }
        location /static {
                expires 30d;
                autoindex on;
                #return 403;
                add_header Cache-Control private;
                alias /www/www/html/qqq/static/;
        }
        location /media {
                expires 30d;
                autoindex on;
                #return 403;
                add_header Cache-Control private;
                alias /www/www/html/qqq/media/;
        }
   }

erver{
        listen 80;
        server_name www.qqq.com qqq.com;
        rewrite ^(.*) https://www.aaa.com$1 permanent;
    }
1808 次点击
所在节点    程序员
10 条回复
Yakir
2020-11-17 22:59:46 +08:00
rewrite ^(.*) https://www.aaa.com$1 permanent; 改成 rewrite ^/(.*) https://www.aaa.com/$1 permanent; 试下
另外第二个 server 少了一个 s,确定 reload 没有报错吗
dorothyREN
2020-11-17 23:18:31 +08:00
直接 return 301 www.aaa.com
python30
2020-11-17 23:47:33 +08:00
@Yakir 确实是 那个 server 少了个 s 的问题。现在能跳了
还有就是怎么设置 https 也一起跳?
现在只能 http 的跳过去。https 还是原来的网址

还有一个问题。我以前好像设置过。记得 rewrite 301 什么的
不知道这个上面这样是不是永久 301 重定向的?
python30
2020-11-17 23:49:28 +08:00
@dorothyREN
不只是只有主域名。还有里面的一些目录也一起跳。
python30
2020-11-17 23:51:04 +08:00
@Yakir
这样写还有个问题
就是目录跳转的时候 少了个 /
比如:www.qqq.com/aaa/bbb 跳过去 www.aaa.comaaa/bbb 少了 com 后面的 /
bin456789
2020-11-18 00:04:31 +08:00
if ($http_host = www.qqq.com) {
return 301 https://www.aaa.com$request_uri;
}
ysc3839
2020-11-18 08:11:16 +08:00
quanjw
2020-11-18 09:24:00 +08:00
分两个 server 直接 301
doveyoung
2020-11-18 10:15:16 +08:00
80 和 443 端口的配置下面分别都要有 301

另外 nginx 官网建议使用 301 而不是 rewrite,当然 rewrite 也可以
python30
2020-11-18 10:55:24 +08:00
这样能跳转了。分别在两个 server 里面添加了:
return 301 https://www.aaa.com$request_uri;

测试止录也能跳
这样是永久 301 吧
不知道对 seo 有利不



```
server {
listen 443 ssl;
server_name www.qqq.com qqq.com;
ssl_certificate 1_www.qqq.com_bundle.crt;
ssl_certificate_key 2_www.qqq.com.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
charset UTF-8;

client_max_body_size 75M;
fastcgi_buffers 8 128k;
fastcgi_busy_buffers_size 128k;

return 301 https://www.aaa.com$request_uri;


location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:12008;
uwsgi_send_timeout 300;
uwsgi_connect_timeout 300;
uwsgi_read_timeout 300;
}
location /static {
expires 30d;
autoindex on;
#return 403;
add_header Cache-Control private;
alias /www/www/html/qqq/static/;
}
location /media {
expires 30d;
autoindex on;
#return 403;
add_header Cache-Control private;
alias /www/www/html/qqq/media/;
}
}

server{
listen 80;
server_name www.qqq.com qqq.com;
return 301 https://www.aaa.com$request_uri;
}
```

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/726432

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX