我刚刚使用Ubuntu 16.04上的Slim Framework,从Plesk环境移动到没有控制面板的服务器(Ubuntu 16.04)。在Plesk服务器上一切都很好。我的API(index.php)驻留在
中httpdocs/api/v2
在该文件夹中我有这个htaccess文件
RewriteEngine on
# If a directory or a file exists, use the request directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward the request to index.php
RewriteRule . index.php
现在我已离开Plesk,我有这个(截断的)vhost文件:
<Directory /var/www/somedomain.co.uk/httpdocs>
Options -Indexes +FollowSymLinks -MultiViews
DirectoryIndex index.html index.php
</Directory>
然而,这个设置,如果我去somedomain.co.uk/api/v2/index.php我找不到Slim页面。
我已经尝试为htaccess添加重写基础,例如
RewriteEngine on
RewriteBase /api/v2
# If a directory or a file exists, use the request directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward the request to index.php
RewriteRule . index.php (have also tried ^ index.php)
但无济于事。
不确定此时还有什么可以尝试 - 任何帮助都非常感激。
更新 ...我可以在API中测试一个方法,例如somedomain.co.uk/api/v2/pages/index但这会返回Slim Application Error页面(如果有帮助的话)所有!)
UPDATE 解决了Composer安装问题。有了这个修复,我已经让它工作了,在vhost文件中使用上面的配置,这对于.htaccess
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php