【发布时间】:2015-09-21 14:33:41
【问题描述】:
我已经搜索了 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,浏览器就会说有无穷无尽的重定向。
有什么想法吗?
【问题讨论】:
-
您能出示您的日志吗?你在浏览器的“私人窗口”里试过了吗?
-
uzsolt,我能够发现问题,请参阅我的答案。谢谢。