Slim PHP 错误的重定向,为调用的任何 URI 获取 /public

Slim PHP bad redirection, get /public for any URI called

我正在尝试在 plesk 服务器上安装一个基于 slim framework 的网络应用程序。该应用程序在我的 WAMP 服务器中运行良好,但在 Web 服务器中无法运行。这一定是服务器配置错误,但我无法找出可能是哪个问题。

在我的应用程序中,我打印 $this->app->request->getRootUri(); 以访问被调用的 URI,我得到:/public 对于任何 URI。

我的 /httpdocs/.htaccess 看起来像这样:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule    ^$    public/index.php    [L]
    RewriteRule    (.*) public/index.php/    [L]
</IfModule>

我的 /httpdocs/public/.htaccess 看起来像这样:

<IfModule mod_rewrite.c>
    Options -MultiViews

    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

知道我可以做些什么来让我的应用正常运行吗?

为了找到虚拟路径,slim 使用 env 变量的 pathInfo,或者 script_name 如果 slim 没有安装在子文件夹中。它应该始终是 pathInfo.

所以它在 windows 上运行良好,但如果我们不将项目放在子文件夹中,它在 linux 上就无法运行...