在Nginx重写(Tonic框架)中重定向所有PHP请求到路由器


Redirecting all PHP Request to router in Nginx rewrite (Tonic Framework)

我已经开始使用Tonic框架开发一个新的RESTful API。我已经在我的apache机器上测试了功能正常的代码,但我现在正试图将其移动到我的Nginx机器上。

我已经尝试将此转换为nginx规则:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_URI} !router'.php$
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule .* router.php [L,QSA]
</IfModule>

但是我的规则似乎都不起作用。

到目前为止我所尝试的是试图将所有请求重定向到/v2/router.php(我试图访问的php文件)

location /v2/ {
    try_files $uri $uri/ /v2/router.php;
}

这会导致奇怪的结果,比如我所有的php文件因为一些奇怪的原因而执行,等等…

感谢您的支持。

你可以试试

location /v2 {
    root <absolute folder path>/v2;
    if (!-e $request_filename) {
        rewrite ^/(.*)$ /v2/router.php?/$1 last;
        break;
    }
}

希望能有所帮助。