位置中的 nginx 别名 - 丢失最后一个字符

nginx alias in location - lost last character

我有 nginx 配置

它的部分

location ~ ^/api/(?<module>.+)/doc/ {
    autoindex on;
    index index.html;
    alias /home/dmac/www/hub/hub/modules/RestApi/Resources/Doc/;
    error_log /var/log/nginx/hub-test-error.log debug;
}

但是当我请求时,我有错误

2015/03/06 18:46:43 [错误] 11158#0: *1 opendir() “/home/dmac/www/hub/hub/modules/RestApi/Resources/Doc/dashboar”失败 (2:没有那个文件或目录),客户端:127.0.0.1,服务器:hub.dev, 请求:"GET /api/dashboard/doc/ HTTP/1.1",主机:"hub.dev"

2015/03/06 18:29:37 [error] 9941#0: *1 opendir() "/home/dmac/www/hub/hub/modules/RestApi/Resources/Doc/consultan" failed (2: No such file or directory), client: 127.0.0.1 ,服务器:hub.dev,请求:"GET /api/consultant/doc/ HTTP/1.1",主机:"hub.dev"

我尝试更改配置

    location ~ ^/api/(consultant|dashboard)/doc/ {

但错误相同。

nginx 版本:nginx/1.7.10 ubuntu14.04 x64

为什么我有这个错误?怎么修? 您知道为处理不同模块配置 nginx 位置的其他方法吗?

我遇到了同样的问题,通过在别名指令中的路径中附加一个斜杠解决了这个问题。

alias /home/dmac/www/hub/hub/modules/RestApi/Resources/Doc//;

而不是

 alias /home/dmac/www/hub/hub/modules/RestApi/Resources/Doc/;

我猜测某些代码试图删除结尾的斜杠,但最终确实吃掉了最后一个字符。

nginx版本错误1.7.10

在最新版本中修复了错误。 所以只更新nginx。