我有两个网址版本的网址: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
?
答案 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。