Laravel Deployment on Shared Hosting - 404 Error

2020-07-25 01:28发布

I am trying to deploy my laravel 5.1 application on shared hosting cpanel. But I am getting 404 error.

404

Not Found

The resource requested could not be found on this server!

To upload the project, I make a clone of project directory and uploaded it on cpanel via their FileManger. Then move the Public folder items into Public_Html.

My .htaccess file content is shown below:

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

I also changed the following lines in index.php:

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

to

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

What could be wrong with this deployment approach?

2条回答
唯我独甜
2楼-- · 2020-07-25 01:42

this is htaccess issue

get one .htaccess file in root folder of your web-project.

And put the following code inside it,

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

refresh the page and check it out

my problem is solved

when i upload the laravel project into the server my application just open the default route

but all of my other web route in laravel has error

the error is :404

laravel : 404 Not Found The resource requested could not be found on this server!

查看更多
迷人小祖宗
3楼-- · 2020-07-25 02:05

Deploying Laravel app in cPanel is quite simple(if you are deploying on add-on domain).

In cPanel, go on add-on domains and then create a new add-on domain.

By default cPanel generates document root for you in this manner:

public_html/mydomain.com

Change it to:

public_html/mydomain.com/MyLaravelApp/public

Now upload your Laravel project under public_html/mydomain.com directory.

It should look like this.

enter image description here

If you have already an add-on domain. Go to Modify add-on domain (just below Create an Addon Domain)

Click edit icon in document root column and change your domain's document root.

enter image description here

查看更多
登录 后发表回答