使用正则表达式的Nginx try_文件
我正在尝试配置我的Nginx conf文件,但它不想工作 我想提供一些pdf文件 当您编写url“127.0.0.1/abcFile.pdf”时,Nginx应为您提供位于此处的文件:“/a/b/c/abcFile.pdf” 我可以有多个文件夹。每次文件名的前3个字母都是文件夹名 所以我试着这样做:使用正则表达式的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 ; } 但
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,您刚才在这个问题上救了我。我的错误是用
代替了^/
。我只是在这上面花了很多时间。。。非常感谢!!:)