重写映像共享规则



我正在为屏幕云制作图像存储,这样做我想让这些网址正常工作:任何以文件扩展名结尾的网址都会正常重定向:

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$ {
    ...
}

有关详细信息,请参阅此文档。

最新更新