重写图像共享规则

时间:2017-01-31 21:39:36

标签: image file mod-rewrite nginx url-rewriting

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

http://serv/ - >的index.php
http://serv/index.php - >的index.php

任何没有扩展名或png的网址都会返回该文件:

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。 中间线实际上正常工作

1 个答案:

答案 0 :(得分:0)

我不了解您的所有要求,但似乎您的某些URI映射到文档根目录中的文件,有些映射到名为scr的子目录中的文件。

您可以使用rewrite ... break指令测试各种位置和文件扩展名,而不是使用try_files。例如:

root /path/to/root;

location / {
    try_files $uri /scr$uri /src$uri.png /index.php;
}
location ~ \.php$ {
    ...
}

有关详情,请参阅this document

相关问题