【发布时间】:2015-02-18 22:58:32
【问题描述】:
正在寻找类似的问题,但找不到合适的解决方案。
在 nginx 网络服务器上,我的网站在 443 上侦听,我不想从 url 访问它(如果我输入 https://my.server/foo,给出 403),但只有从 80 端口重定向才可以接受, 正确登录的地方。
我阅读了有关 valid_referers 并尝试过:
valid_referers none blocked server_names
localhost ip.of.server;
if ($invalid_referer) {
return 403;
}
和
valid_referers server_names
localhost ip.of.server;
if ($invalid_referer) {
return 403;
}
因为我不确定什么是正确的语法,但一切都被完全忽略了。
我做错了什么,这是解决这个问题的好方法吗?
谢谢, 米尔科
编辑: 解决方案是在重写之前放置 valid_referers: 位置 ~ ^/([a-zA-Z0-9=\?]+)$ {
valid_referers server_names http://ip.of.ser.ver;
if ($invalid_referer) {
return 403;
}
rewrite ^/(.*)$ / break;
}
【问题讨论】:
-
你想要一些奇怪的东西。在 http 上登录并重定向到 https 与您应该做的完全相反。
-
好的,谢谢提示,我可以尝试在它们之间切换,然后我应该如何限制直接 http url 访问?