共享托管服务器上的Laravel返回错误500

时间:2017-09-24 16:36:29

标签: laravel laravel-5.4

我正在使用共享托管服务器,我安装了我的第一个Laravel 5.4应用程序,一切都运行正常。几天前,我在另一个域上安装了另一个Laravel 5.4应用程序,但服务器相同,但是当我尝试访问该URL时,我得到了500 INTERNAL SERVER ERROR

以下是我的.htaccess代码

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !^public
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

我也尝试了以下内容,但同样的错误:

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

    RewriteEngine On

    ### Add two lines for fix error 500 ###
    Options -Indexes
    php_flag xcache.cacher 0
    #######################################

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

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

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

1 个答案:

答案 0 :(得分:3)

您移动了highA文件夹中您不应该做的所有内容。只有public_html内的文件需要位于/public,因此名称为public_html。 Laravel文件应放在较高的目录中,无法从公众访问。

  1. 使用Softaculous安装Laravel,或通过public
  2. 中的composer安装Laravel
  3. /home/username/laravel文件夹中的所有内容移至 /home/username/public_html
  4. /home/username/laravel中的所有内容移至/home/username/laravel/public并移动后删除公用文件夹。
  5. 修改此文件:/home/username/public_html
  6. 更改为/home/username/public_html/index.php
  7. 更改为require '/home/username/laravel/vendor/autoload.php';
  8. 保存此文件并关闭窗口。

  9. 编辑此文件:$app = require_once '/home/username/laravel/bootstrap/app.php';

  10. 更改为:

    /home/username/laravel/server.php
  11. if ($uri !== '/' && file_exists('/home/username/public_html'.$uri)) { return false; } require_once '/home/username/public_html/index.php'; 替换为您的托管用户名。 :)