
问个 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; } 1 Yakir 2020 年 11 月 17 日 rewrite ^(.*) https://www.aaa.com$1 permanent; 改成 rewrite ^/(.*) https://www.aaa.com/$1 permanent; 试下 另外第二个 server 少了一个 s,确定 reload 没有报错吗 |
2 dorothyREN 2020 年 11 月 17 日 直接 return 301 www.aaa.com |
3 python30 OP @Yakir 确实是 那个 server 少了个 s 的问题。现在能跳了 还有就是怎么设置 https 也一起跳? 现在只能 http 的跳过去。https 还是原来的网址 还有一个问题。我以前好像设置过。记得 rewrite 301 什么的 不知道这个上面这样是不是永久 301 重定向的? |
4 python30 OP @dorothyREN 不只是只有主域名。还有里面的一些目录也一起跳。 |
5 python30 OP |
6 bin456789 2020 年 11 月 18 日 |
7 ysc3839 2020 年 11 月 18 日 via Android @Yakir @bin456789 这种情况下不要用 if 也不要用 rewrite,nginx 官网的 Pitfalls and Common Mistakes 中提到了这两个问题。 https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/#server-name-if https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/#taxing-rewrites |
8 quanjw 2020 年 11 月 18 日 分两个 server 直接 301 |
9 doveyoung 2020 年 11 月 18 日 80 和 443 端口的配置下面分别都要有 301 另外 nginx 官网建议使用 301 而不是 rewrite,当然 rewrite 也可以 |
10 python30 OP 这样能跳转了。分别在两个 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; } ``` |