Laravel 流明内部服务器错误 500 使用共享主机?

Laravel lumen Internal server error 500 using shared hosting?

我是 Laravel/lumen 的新手。我使用控制器函数制作了一个简单的起始代码,以 return 响应。它在我的本地服务器上运行良好,但是当我使用我的共享主机时,到控制器功能的路由会出现 500 内部服务器错误。任何不使用控制器功能的东西都可以工作。像

$router->get('/', function () use ($router) {
    return phpinfo();
});

return 是 php 信息。 使用 IONOS 托管。不使用任何数据库连接。我在 Whosebug 中尝试了几个类似的答案,但无法弄清楚。 域指向项目的 public 文件夹。尝试使用 FTP 和 ssh 安装。结果一样。

Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.

Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.

storage/logs

中没有错误信息

控制器代码...

namespace App\Http\Controllers;

class ExampleController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }
    public function profile(){
        return response('hello! Controller Works...');
    }

    //
}

路由器代码..

<?php

/** @var \Laravel\Lumen\Routing\Router $router */

/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It is a breeze. Simply tell Lumen the URIs it should respond to
| and give it the Closure to call when that URI is requested.
|
*/

$router->get('/', function () use ($router) {
    return $router->app->version();
});
$router->get('profile', [
    'as' => 'profile', 'uses' => 'ExampleController@profile'
]);

.htaccess 文件

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

删除 .htaccess 将出现未找到错误。 .env 文件

APP_NAME=Lumen
APP_ENV=production
APP_KEY=<my generated key>
APP_DEBUG=false
APP_URL=http://<my domain>
APP_TIMEZONE=UTC

LOG_CHANNEL=stack
LOG_SLACK_WEBHOOK_URL=

CACHE_DRIVER=file
QUEUE_CONNECTION=sync

搜索了一整天后,发现问题出在 .htaccess 文件上。

应该是RewriteRule ^ /index.php [L]而不是RewriteRule ^ index.php [L]

根据文章,500 个内部服务器错误中的大部分与 .htaccess 文件有关。所以对于新手来说,有点头疼。