为什么访问在Heroku上部署的Slim应用程序时出现404 Not Found错误?

时间:2020-08-25 09:37:50

标签: php heroku slim

因此,我在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错误,尽管在本地主机上也可以。

那么,请说如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

如果您的根路由有效,那么听起来好像该应用程序部署良好。您是否上传了.htaccess文件来向Heroku解释重写规则?在Slim Docs中,您需要以下内容:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]

这使Apache知道将所有未发送到现有文件或目录的请求发送到索引文件(该请求将路由到routes.php)。