使用正则表达式的Nginx try_文件

使用正则表达式的Nginx try_文件,nginx,url-rewriting,Nginx,Url Rewriting,我正在尝试配置我的Nginx conf文件,但它不想工作 我想提供一些pdf文件 当您编写url“127.0.0.1/abcFile.pdf”时,Nginx应为您提供位于此处的文件:“/a/b/c/abcFile.pdf” 我可以有多个文件夹。每次文件名的前3个字母都是文件夹名 所以我试着这样做: location ~* "\.(\w{1})(\w{1})(\w{1})(\w*.pdf)$" { try_files $uri $uri/ /$1/$2/$3/$1$2$3$4 ; } 但

我正在尝试配置我的Nginx conf文件,但它不想工作

我想提供一些pdf文件

当您编写url“127.0.0.1/abcFile.pdf”时,Nginx应为您提供位于此处的文件:“/a/b/c/abcFile.pdf”

我可以有多个文件夹。每次文件名的前3个字母都是文件夹名

所以我试着这样做:

location ~* "\.(\w{1})(\w{1})(\w{1})(\w*.pdf)$" {
    try_files $uri $uri/ /$1/$2/$3/$1$2$3$4 ;
}
但我只有一个错误500。。。我不知道我在这里错过了什么

此类代码可用于重写:

rewrite "(\w{1})(\w{1})(\w{1})(\w*.pdf)" $1/$2/$3/$1$2$3$4 permanent;
但这里我也有一个问题:太多的重定向。如果我删除“永久性”它就不再工作了


如果你有任何建议:)非常感谢

第一个正则表达式以
开头。这不应该是一个
/
或者甚至是一个
^/
?在
rewrite
语句中,重写的URI需要一个前导的
/
@Richard,您刚才在这个问题上救了我。我的错误是用
代替了
^/
。我只是在这上面花了很多时间。。。非常感谢!!:)