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

时间:2016-01-06 10:30:41

标签: .htaccess laravel deployment laravel-5 laravel-5.1

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

  

404

     

未找到

     

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

要上传项目,我复制项目目录并通过FileManger将其上传到cpanel。然后将Public文件夹项目移动到Public_Html。

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

sum

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

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

require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';

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

3 个答案:

答案 0 :(得分:3)

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

在cPanel中,继续使用附加域,然后创建一个新的附加域。

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

public_html/mydomain.com

将其更改为:

public_html/mydomain.com/MyLaravelApp/public

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

应该是这样的。

enter image description here

如果您已经有一个附加域名。转到修改附加域(在创建插件域下面)

点击文档根列中的修改图标,然后更改域名的文档根目录。

enter image description here

答案 1 :(得分:1)

这是htaccess问题

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

并将以下代码放入其中,

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

刷新页面并签出

我的问题解决了

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

但是我在laravel中的所有其他网络路线都出现错误

错误是:404

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

答案 2 :(得分:0)

尝试在您的 .env 中设置空的 APP_URL

APP_URL=http://