Nginx 位置索引问题

Nginx 位置索引问题

我对 nginx 位置块感到困扰。

location /myApp/api/account/tutorialPage {
alias /data/www/;   
index tutorial.html;
}

如果严格匹配 - 一切正常,可以访问我的 tutorial.html。
但我希望每个包含 /tutorialPage 的链接都指向 tutorial.html。
所以我设置了下一个位置:

location ~ /tutorialPage {
alias /data/www/;   
index tutorial.html;
}

它必须是类似“如果链接包含 /tutorialPage 则转到 tutorial.html”之类的内容。但我遇到了 403 错误。

[错误] 10148#0:*65346 “/data/www” 目录索引被禁止,客户端:194.183.181.44,服务器:,请求:“GET /myApp/api/account/tutorialPage/HTTP/1.1”,主机:“my.domain.com”,引荐来源:“https://my.domain.com/

我已仔细检查过 data/www 目录是否有 chmod 755(即任何人都可以读取)

----更新


适用地点示例

    location ~ /tutorialPage\z {
rewrite ^/.* /tutorial redirect;
}

location /tutorial {
alias /data/www;
index tutorial.html;
}

答案1

您需要在内部重写 URI:

location ~ /tutorialPage {
    rewrite ^ /tutorial.html last;
}

index指令确定遇到目录时的默认操作,但这里并非如此。

相关内容