因此,我在Heroku上部署了Slim应用。仅索引路由(/)有效,其他索引错误404未找到。
这是我的route.php文件
// index
$app->group('', function(RouteCollectorProxy $group) {
$group->get('/', EntryPointController::class . ':index' );
$group->get('/test', EntryPointController::class . ':test' );
});
// api
$app->group('/api/v1', function(RouteCollectorProxy $group) {
$group->get('/products', ProductsController::class . ':all' );
});
Procfile内容:
web: vendor/bin/heroku-php-apache2 public/
对于除索引路由(/)以外的所有路由,我都收到404错误,尽管在本地主机上也可以。
那么,请说如何解决这个问题?
答案 0 :(得分:1)
如果您的根路由有效,那么听起来好像该应用程序部署良好。您是否上传了.htaccess
文件来向Heroku解释重写规则?在Slim Docs中,您需要以下内容:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
这使Apache知道将所有未发送到现有文件或目录的请求发送到索引文件(该请求将路由到routes.php
)。