Nginx对我的表现出乎意料。这是两个简化的位置块。
这可以按预期工作。返回403错误:
location / {
deny all;
root /var/www/test;
}
我预计会有403错误。但是,这会返回301并重定向:
location / {
deny all;
return 301 https://$server_name$request_uri;
}
如何使用return
指令拒绝和阻止任何网址重定向?
答案 0 :(得分:6)
在nginx中,return
指令来自重写模块,deny
来自访问模块。根据{{3}}和源代码,重写模块在NGX_HTTP_REWRITE_PHASE
阶段处理(在位置上下文中为return
),访问模块在NGX_HTTP_ACCESS_PHASE
阶段处理,重写阶段发生在访问阶段之前,return
停止请求处理并在重写阶段返回301。
答案 1 :(得分:0)
根据Nginx documentation,
ngx_http_access_module模块允许限制对某些客户端地址的访问。
您无法限制访问其他模块[此处的重定向模块]。
要拒绝/阻止重定向,只需附加#
location / {
deny all;
# return 301 https://$server_name$request_uri;
}