因此我尝试在 nginx 中使用多条重写规则,但是没有效果。
location / {
if (!-e $request_filename){
rewrite ^(.*)$ /$1.png break;
rewrite ^(.*)$ /$1.jpg break;
rewrite ^(.*)$ /$1.gif break;
rewrite ^(.*)$ /$1.txt break;
rewrite ^(.*)$ /$1.rar break;
rewrite ^(.*)$ /$1.zip break;
rewrite ^(.*)$ /$1.mp3 break;
rewrite ^(.*)$ /$1.mp4 break;
}
try_files $uri $uri/ /index.php?$query_string;
}
这是我的配置,但第一条规则(png 规则)是唯一有效的规则,其余规则都返回 404。
谢谢!
答案1
该rewrite
指令不检查重写的 URI 是否存在,因此
rewrite ^(.*)$ /$1.png break;
只是添加.png
到每个无法解析文件的 URL 并停止重写(break
)。
您正在寻找的是try_files
已经拥有的指令。 您可能想要类似以下内容的内容:
try_files $uri $uri/ $uri.png $uri.jpg $uri.gif ...
我不确定您想用来实现什么目的/index.php?query_string
。