我正在为屏幕云制作图像存储,这样做我想让这些网址正常工作:任何以文件扩展名结尾的网址都会正常重定向:
http://serv/->/索引.php
http://serv/index.php ->/索引.php
任何没有扩展名或为 png 的 url 都会返回文件:
http://serv/scr1801172229 ->/scr/scr1801172229.png
http://serv/scr1801172229.png ->/scr/scr1801172229.png
试图学习如何从nginx使用重写,尽管我找不到任何好的教程。我尝试的每件事都没有奏效,包括这是我得到的最接近的东西:
rewrite /index /index.php break;
rewrite /(.*)$ /scr/$1.png break;
rewrite /(.*)$.png /scr/$1.png break;
最后一行什么都不做(它去 404)第一行用于在未加载资源的情况下显示索引,除索引以外的任何内容都不起作用,我无法像往常一样在 url 中获取.php。中线实际上工作正常
我不了解您的所有要求,但似乎您的一些 URI 映射到文档根目录中的文件,而一些映射到名为 scr
的子目录中的文件。
您可以使用 try_files
指令测试各种位置和文件扩展名,而不是使用 rewrite ... break
。例如:
root /path/to/root;
location / {
try_files $uri /scr$uri /src$uri.png /index.php;
}
location ~ .php$ {
...
}
有关详细信息,请参阅此文档。