如果文件存在/模式匹配,则nginx重写

时间:2015-09-21 16:03:22

标签: php nginx rewrite slim

我目前正在尝试将Munee集成到现有的Slim 3应用程序中。

问题是Slim在应用程序中执行路由并且需要nginx将所有不存在的文件重定向到index.php来执行此操作。

另一方面,Munee需要重定向一些文件扩展名才能缓存/缩小/等。它们。

我现在尝试了大约4个小时,阅读SO和Google上的所有内容,但没有找到可行的解决方案。

我尝试过的事情:

1

location ~ \.(css|less|scss|js|coffee|jpg|png|gif|jpeg) {
    rewrite ^/(.*)$ /munee.php?files=/$1 break;
}
try_files $uri /index.php;

2

rewrite ^/(.*\.(?:css|less|scss|js|coffee|jpg|png|gif|jpeg))$ /munee.php?files=/$1 break;

try_files $uri /index.php;

3

location ~ \.(css|less|scss|js|coffee|jpg|png|gif|jpeg) {
    if (-f $request_filename) {
        rewrite ^(.*) /munee.php?files=/$1 last;
    }
}
try_files $uri /index.php;

另外,我尝试将所有流量重定向到index.php,以便能够处理PHP中的所有内容,但如果该文件存在,它仍然只是直接呈现。

如果某人有替代Munee的话,它会非常感激,但我认为它确实完全符合我的需要而且仅此而已......资产只是看起来如此过载而且不必要复杂。

编辑(根据要求):

在nginx配置结束时,有以下部分:

location /index.php {
       fastcgi_connect_timeout 3s;     # default of 60s is just too long
       fastcgi_read_timeout 10s;       # default of 60s is just too long
       include fastcgi_params;
       fastcgi_pass 127.0.0.1:9000;    # assumes you are running php-fpm      locally on port 9000
   }

0 个答案:

没有答案