首页 > 解决方案 > Nginx:如何将 JS/CSS http 链接重定向到其他域?

问题描述

我有几个指向 js/css 文件的 HTTP 链接。我想将它重定向到其他位置。下面提供的示例:

重定向自:

https://ex.example.com/js/file1.js

https://ex.example.com/css/file2.css

https://ex.example.com/css/folder1/file3.css

重定向到:

https://ex2.example.com/js/file1.js

https://ex2.example.com/css/file2.css

https://ex2.example.com/css/folder1/file3.css

我在 nginx.conf 中尝试了以下设置。但它不起作用。

server {
    listen       443 ssl;
    server_name ex.example.com;

    location / {
       return 301 https://ex2.example.com;
    }
    location ~* \.(css)$ {
        root https://ex2.example.com/css;
    }
    location ~* \.(js)$ {
        root https://ex2.example.com/js;
    }
    #location /css/ {
    #   return 301 https://ex2.example.com/css;
    #}
    #location /js/ {
    #   return 301 https://ex2.example.com/js;
    #}

    ssl_certificate      /etc/ssl/ssl-bundle.crt;
    ssl_certificate_key  /etc/ssl/myserver.key;
    client_max_body_size 5M;
    ssl_prefer_server_ciphers   on;

  }
}

请帮我解决一下这个。

标签: nginx

解决方案


使用以下配置:

server {
    listen       443 ssl;
    server_name ex.example.com;

    location / {
       return 301 https://ex2.example.com/$request_uri;
    }

    ssl_certificate      /etc/ssl/ssl-bundle.crt;
    ssl_certificate_key  /etc/ssl/myserver.key;
    client_max_body_size 5M;
    ssl_prefer_server_ciphers   on;

  }
}

/$request_uri将自动占用先前的请求 uri 并将其添加到重定向 uri。您不需要匹配正则表达式并进行单独的重定向。


推荐阅读