我想为“静态”文件夹创建一个别名:
location ~ ^/myapp/([a-zA-Z0-9_-]+)/ {
alias /var/lib/myapp/$1/static/;
autoindex on;
}
但是,如果我有以下 URL:
我被重定向至:
这会导致 404。
如果我访问:
我可以正确地看到所有 html 文件的列表(因为“自动索引开启”)。
但是,如果我有这个配置:
location /myapp/ {
alias /var/lib/myapp/;
autoindex on;
}
nginx 不会添加尾部斜杠,因此我可以正确访问 .html 页面。此配置的问题在于 URL 中必须包含“static/”,例如:
如何让 nginx 不在上面的第一个例子中添加尾随斜杠?
答案1
在alias
正则表达式 location
block 需要一个指定目标文件完整路径的值。您需要捕获语句中 URI 的其余部分location
并将其附加到语句的末尾alias
。
例如:
location ~ ^/myapp/([a-zA-Z0-9_-]+)/(.*)$ {
alias /var/lib/myapp/$1/static/$2;
autoindex on;
}
看这个文件了解详情。