V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
python30
V2EX  ›  程序员

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

  •  
  •   python30 · Nov 17, 2020 · 2413 views
    This topic created in 1987 days ago, the information mentioned may be changed or developed.

    问个 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;
        }
    
    10 replies    2020-11-18 10:55:24 +08:00
    logic3579
        1
    logic3579  
       Nov 17, 2020
    rewrite ^(.*) https://www.aaa.com$1 permanent; 改成 rewrite ^/(.*) https://www.aaa.com/$1 permanent; 试下
    另外第二个 server 少了一个 s,确定 reload 没有报错吗
    dorothyREN
        2
    dorothyREN  
       Nov 17, 2020
    直接 return 301 www.aaa.com
    python30
        3
    python30  
    OP
       Nov 17, 2020
    @Yakir 确实是 那个 server 少了个 s 的问题。现在能跳了
    还有就是怎么设置 https 也一起跳?
    现在只能 http 的跳过去。https 还是原来的网址

    还有一个问题。我以前好像设置过。记得 rewrite 301 什么的
    不知道这个上面这样是不是永久 301 重定向的?
    python30
        4
    python30  
    OP
       Nov 17, 2020
    @dorothyREN
    不只是只有主域名。还有里面的一些目录也一起跳。
    python30
        5
    python30  
    OP
       Nov 17, 2020
    @Yakir
    这样写还有个问题
    就是目录跳转的时候 少了个 /
    比如:www.qqq.com/aaa/bbb 跳过去 www.aaa.comaaa/bbb 少了 com 后面的 /
    bin456789
        6
    bin456789  
       Nov 18, 2020
    if ($http_host = www.qqq.com) {
    return 301 https://www.aaa.com$request_uri;
    }
    ysc3839
        7
    ysc3839  
       Nov 18, 2020 via Android
    quanjw
        8
    quanjw  
       Nov 18, 2020
    分两个 server 直接 301
    doveyoung
        9
    doveyoung  
       Nov 18, 2020
    80 和 443 端口的配置下面分别都要有 301

    另外 nginx 官网建议使用 301 而不是 rewrite,当然 rewrite 也可以
    python30
        10
    python30  
    OP
       Nov 18, 2020
    这样能跳转了。分别在两个 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;
    }
    ```
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5063 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 05:38 · PVG 13:38 · LAX 22:38 · JFK 01:38
    ♥ Do have faith in what you're doing.