共享主机上的 Laravel 部署 - 404 错误

Has*_*qib 3 deployment .htaccess laravel laravel-5 laravel-5.1

我正在尝试在共享主机 cpanel 上部署我的 Laravel 5.1 应用程序。但我收到 404 错误。

404

未找到

在此服务器上找不到请求的资源!

为了上传项目,我克隆了项目目录并通过他们的 FileManger 将其上传到 cpanel。然后将 Public 文件夹项目移动到 Public_Html 中。

我的 .htaccess 文件内容如下所示:

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

    RewriteEngine On
       RewriteBase /

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

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

我还在 index.php 中更改了以下几行:

require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';
Run Code Online (Sandbox Code Playgroud)

require __DIR__.'/../objecsys/bootstrap/autoload.php';
$app = require_once __DIR__.'/../objecsys/bootstrap/app.php';
Run Code Online (Sandbox Code Playgroud)

这种部署方法可能有什么问题?

Raj*_*shi 5

在 cPanel 中部署 Laravel 应用程序非常简单(如果您在附加域上部署)。

在 cPanel 中,转到附加域,然后创建一个新的附加域。

默认情况下,cPanel 以这种方式为您生成文档根目录:

public_html/mydomain.com
Run Code Online (Sandbox Code Playgroud)

将其更改为:

public_html/mydomain.com/MyLaravelApp/public
Run Code Online (Sandbox Code Playgroud)

现在将您的 Laravel 项目上传到public_html/mydomain.com目录下。

它应该是这样的。

在此处输入图片说明

如果您已经有一个附加域。转到修改附加域(就在创建附加域下方)

单击文档根列中的编辑图标并更改域的文档根。

在此处输入图片说明


sab*_*zdi 5

这是 htaccess 问题

.htaccess在您的 web 项目的根文件夹中获取一个文件。

并在其中放入以下代码,

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

    RewriteEngine On

    # 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>
Run Code Online (Sandbox Code Playgroud)

刷新页面并查看

我的问题解决了

当我将 Laravel 项目上传到服务器时,我的应用程序只打开默认路由

但是我在 Laravel 中的所有其他网络路由都有错误

错误是:404

laravel : 404 Not Found 在此服务器上找不到请求的资源!

  • 这应该是公认的答案。谢谢你,你节省了我两个小时的时间。爱你。没有同性恋。 (3认同)