Laravel 远程服务器错误 500,站点无法运行

Laravel remote server error 500, site doesn't works

这是我第一次上传到 Laravel 站点的远程服务器。

本地我已经配置了一个虚拟主机,所以我对我的网站的访问是这样的:

site.domain.com //it's pointing htdocs/laravel-proyect/public

我已经将我的站点上传到我的远程服务器,然后:

然后我尝试加载我的网站并收到 500 内部服务器错误

Internal Server Error

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

Please contact the server administrator, and inform them of the time the error occurred, and anything you might have done that may have caused the 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.

有点效果,我在routes.php中有这段代码:

// Begins in the login view
Route::get('/', function()
{
    if (!Sentry::check()) {
        $data = array();
        if (Session::has('email')) {
            $data = array('email' => Session::get('email'));
        }

        return Redirect::route('login', $data);
    }
    else
        return Redirect::route('users');
});

/   ========================================
// LOGIN, LOGOUT AND ACTIVATION SECTION ==========
// // ============================================
// show the login page
Route::get(MyHelpers::textLang('login','routes'), array('as' => 'login', function()
{
    if (Sentry::check())return  Redirect::route('users');
    else {
        $rules = User::$rules_login;
        // show the login page (app/views/frontend/login.blade.php)
        return View::make('frontend.login', compact('rules'));
    }

所以第一次mo url看起来像:

site.domain.com/entrar

'entrar',(用西班牙语登录),y 由 MyHelpers::textLang('login','routes')设置,访问我的 class MyHelpers 和lang 文件将 'login' 翻译成 'entrar',但不要加载模板。

开始:

实际上我的 .htaccess 是:

RewriteEngine On

# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ / [L,R=301]

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

我没有更多的想法,也找不到与此处相关的其他解决方案。

有什么想法吗?拜托,我快疯了,星期三我必须开始一个新的项目,并且仍在使用这个项目。

谢谢

我在 heroku Simple Blog 上有一个演示 laravel 应用程序。我的 .htaccess 文件是:

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

    RewriteEngine On

    # Redirect Trailing Slashes...
    RewriteRule ^(.*)/$ / [L,R=301]

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

您的 .htaccess 文件似乎没有问题。您的代码逻辑可能有问题。如果您在本地主机上使用相同的代码没有收到任何错误,请再次检查您的配置。对于laravel 4,Whosebug上已经有类似的问题Laravel 4 Virtual Host and mod rewrite setup

请注意 laravel 5(如果您正在使用它)从 .env 文件获取输入(数据库连接和其他设置)。

如果您仍然遇到错误,请尝试在索引页面上发送简单的响应,例如:

Route::get('/','basic configurations are correct');

然后一步步复杂化。它将帮助您发现错误。

我要补充

RewriteBase /

到 .htaccess

@kikerrobles 的回答确实有效。

您的最终 .htaccess 文件应如下所示

<IfModule mod_rewrite.c>

    <IfModule mod_negotiation.c>

        Options -MultiViews -Indexes

    </IfModule>

    RewriteEngine On

    RewriteBase /

    # 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>