nginx位置将覆盖别名

我有一个别名“/ temp”工作正常,但是当我添加另一个位置块,别名返回404。

工作configuration: http://mysite.com/temp/blank.gif -> OK : http://mysite.com/temp/blank.gif -> OK

 server { # ... location /temp { alias /var/www/temp; } # ... } 

错误configuration: http://mysite.com/temp/blank.gif -> 404 : http://mysite.com/temp/blank.gif -> 404

 server { # ... location /temp { alias /var/www/temp; } location ~ \.(?:jpg|png|gif)$ { expires 30d; } # ... } 

这是我的完整configuration: http : //pastebin.com/yExq0nMY

我该如何解决?

为此使用嵌套的location

nginx只能在server级匹配一个location块,所以你必须在这种情况下嵌套它们。 有关完整的详细信息,请参阅官方文档: nginx如何处理请求 。

 server { # ... location /temp { alias /var/www/temp; location ~ /temp/\.(?:jpg|png|gif)$ { expires 30d; } } location ~ \.(?:jpg|png|gif)$ { expires 30d; } # ... } 

你有一个根目录设置? 请张贴更多的configuration。

一些重要的阅读: https : //www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/