问个 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 22:59:46 +08:00
rewrite ^(.*) https://www.aaa.com$1 permanent; 改成 rewrite ^/(.*) https://www.aaa.com/$1 permanent; 试下
另外第二个 server 少了一个 s,确定 reload 没有报错吗 |
2
dorothyREN 2020-11-17 23:18:31 +08:00
直接 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 00:04:31 +08:00
|
7
ysc3839 2020-11-18 08:11:16 +08:00 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 09:24:00 +08:00
分两个 server 直接 301
|
9
doveyoung 2020-11-18 10:15:16 +08:00
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; } ``` |