2011-01-12 454 views

回答

5
location ^~ /test/ { 
    internal; 
} 
+8

[`internal`(从`HttpCore`模块)](http://wiki.nginx.org/HttpCoreModule#internal)标记位置作为内部给服务器。它会为外部请求返回404,但仍可能是内部重定向,重写,错误页面等的目标。 – 2012-06-15 01:48:44

70
location /test/ { 
    return 404; 
} 
+4

[`return`是'HttpRewriteModule`的一部分](http://wiki.nginx.org/HttpRewriteModule#返回)。它使得它的父母位置总是返回给定的状态,这正是请求者想要的。 – 2012-06-15 01:46:37

16

需要加上“^〜”给这场比赛比的正则表达式所在地块更高的优先级。

location ^~ /test/ { 
    return 404; 
} 

否则你会处于一些棘手的情况。例如,如果您有其他位置的块如

location ~ \.php$ { 
    ... 
} 

有人将请求发送到http://your_domain.com/test/bad.php,该正则表达式所在地块将被挑选nginx的服务请求。显然这不是你想要的。所以一定要把“^〜”放在那个位置块里!

参考:http://wiki.nginx.org/HttpCoreModule#location