为什么 Restler3 “供应商”文件夹需要位于站点根目录上


Why does the Restler3 'vendor' folder need to be on site root?

几天前我下载了 Restler3,在修补它时,我决定将"供应商"文件夹移到站点根目录之外是个好主意。起初一切似乎都很好,但后来我注意到例如/math/sum/* 示例不再有效(如下所示:http://restler3.luracast.com/examples/_002_minimal/readme.html

好的,所以我没有将其移动到根文件夹之外,而是将其移动到子文件夹中,奇怪的是相同的结果。 URL 就像 api.domain.com/math/sum/1/2/3/4 一样,需要可变数量的参数,只是停止工作,直到我将"供应商"文件夹放回站点根目录中。

现在这可能很明显,为什么对你们中的一些人来说,对我来说不是。我总是编写从不依赖于它相对于其他东西的位置的代码,以防止不兼容。来自 Restler 的代码看起来足够可靠,所以我无法想象他们没有做同样的事情。

它可能是我的服务器上的东西吗?也许是建议的 .htaccess 的东西吗?(我一直讨厌那些,因为我并不完全理解它们)

.htaccess看起来像这样:

DirectoryIndex index.php
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^$ index.php [QSA,L]
    RewriteCond %ˆ{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

有人可以为我阐明这一点,即启发我吗?我只是想不通。

供应商文件夹不必也不应该位于可公开访问的文件夹中。

移动供应商文件夹时,请确保移动 composer.json 并运行

composer dump-autoload

要确保自动加载.php是最新的