如何在Nginx中将静态文件请求重定向到https?

时间:2017-02-24 21:17:38

标签: regex redirect nginx

我有两个网址版本的网址:substr(new_str, 2, length(new_str) - 2)http://example.com

我想将所有请求重定向到静态内容(以https://example.com.html.htm结尾的文件)到我网站的https版本。

所以,我创建了规则:

.js

使用此规则,浏览器会将我的网站地址更改为location ~ "\.(htm|html|js|css|svg|png)$" { return 307 https://example.com$request_uri; }

但是我不想更改地址,我希望所有对静态文件的请求都会被重定向到https版本https://example.com(我网站的主html)。

如何将index.html之类的内容添加到正则表达式AND NOT index.html

1 个答案:

答案 0 :(得分:2)

尝试:

root /path/to/root;

location = /index.html {
}

location ~ "\.(htm|html|js|css|svg|png)$" {
    return 307 https://example.com$request_uri;
}

location =块具有最高优先级(顺序并不重要)。

由于显式或隐式index index.html语句,URI /会导致nginx查找/index.html。空位置块将导致提供静态文件,并避免return 307

有关详情,请参阅this document