[英]NGINX Redirect all to https except one directory
我已经搜索了stackoverflow来寻找答案和所有建议的内容,但尝试却没有成功。
我的网站将用户重定向为始终使用SSL(https)。 但是,我有一个不能在SSL上使用的聊天应用程序,因为它没有使用ssl url许可。 我无法让开发人员更新许可证,但这是另一个故事。
因此,由于这个原因,我只允许非ssl(http)驻留在名为chat的子目录中的此聊天应用程序。
这是我的配置,它不起作用:
server {
listen 80;
location / { # the default location redirects to https
return 301 https://$server_name$request_uri;
}
location /chat/ {} # do not redirect requests for chat location
# ...
}
server {
listen 443;
location /chat/ { # redirect https iframe requests to http server
return 301 http://$server_name$request_uri;
}
# ...
}
我尝试了很多组合,包括302而不是301(尝试时清除了我的浏览器缓存),斜杠与非斜杠。 似乎没有任何作用。
疯狂的是,这种方法一直有效,直到我更新SSL块使其更安全并获得A +标签为止。 不知道我删除或添加了哪些内容可能影响了此功能。
最后,如果我清除浏览器缓存,然后直接转到
http://example.com/chat/test.htm
,它不会重定向哪个是正确的。 但是,一旦我访问https://example.com ,然后访问http://example.com/chat/test.htm ,浏览器就会显示无休止的重定向。
有任何想法吗?
好像我在我的SSL块中添加了HSTS标头,告诉浏览器强制使用SSL。 这导致无休止的重定向。 我将HSTS指令的使用期限更改为0,因此希望这将重置我的用户浏览器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.