我有一个别名“/ 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/