【问题标题】:Why i get 404 Not Found error when access Slim app deployed on Heroku?为什么在访问 Heroku 上部署的 Slim 应用程序时出现 404 Not Found 错误?
【发布时间】:2020-08-25 18:10:59
【问题描述】:

所以,我在 Heroku 上部署了 Slim 应用程序。只有索引路由(/)有效,其他我得到 404 not found 错误。

这是我的 routes.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 错误,尽管在本地主机上一切正常。

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

【问题讨论】:

    标签: php heroku slim


    【解决方案1】:

    如果您的根路由有效,那么听起来应用部署得很好。您是否上传了 .htaccess 文件来向 Heroku 解释重写规则?从Slim Docs,您需要类似:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-22
      • 2018-10-01
      • 2017-09-30
      • 1970-01-01
      • 1970-01-01
      • 2020-03-01
      • 2022-07-07
      • 1970-01-01
      相关资源
      最近更新 更多