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

时间:2015-03-06 16:54:28

标签: nginx

我有nginx配置

它的部分

location ~ ^/api/(?<module>.+)/doc/ {
    autoindex on;
    index index.html;
    alias /home/dmac/www/hub/hub/modules/RestApi/Resources/Doc/$1;
    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”

OR

2015/03/06 18:29:37 [错误] 9941#0:* 1 opendir()“/ home / dmac / www / hub / hub / modules / RestApi / Resources / Doc / consultan”失败(2 :没有这样的文件或目录),客户端: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 ubuntu 14.04 x64

为什么我有这个错误?如何解决? 你知道为进程不同的模块配置nginx位置的任何方法吗?

2 个答案:

答案 0 :(得分:2)

nginx版本 1.7.10

出错

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

答案 1 :(得分:1)

我有同样的问题,通过在别名指令中的路径附加斜杠来解决它。

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

而不是

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

我猜测某些代码会尝试删除一个尾部斜杠,但最终却吃掉了最后一个字符。

相关问题