Laravel 在共享主机上部署 - 404 错误
Laravel Deployment on Shared Hosting - 404 Error
我正在尝试在共享主机 cpanel 上部署我的 laravel 5.1 应用程序。但是我收到 404 错误。
404
Not Found
The resource requested could not be found on this server!
为了上传项目,我克隆了项目目录并通过他们的 FileManger 将其上传到 cpanel。然后将 Public 文件夹项目移动到 Public_Html。
我的.htaccess文件内容如下:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteBase /
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ / [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
我还在 index.php 中更改了以下行:
require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';
到
require __DIR__.'/../objecsys/bootstrap/autoload.php';
$app = require_once __DIR__.'/../objecsys/bootstrap/app.php';
这种部署方法可能有什么问题?
在 cPanel 中部署 Laravel 应用程序非常简单(如果您在 add-on 域上部署)。
在 cPanel 中,继续 add-on 域,然后创建一个新的 add-on 域。
默认情况下,cPanel 以这种方式为您生成文档根目录:
public_html/mydomain.com
改为:
public_html/mydomain.com/MyLaravelApp/public
现在将您的 Laravel 项目上传到 public_html/mydomain.com
目录下。
它应该是这样的。
如果您已经有一个 add-on 域。转到修改 add-on 域(就在创建插件域下方)
单击文档根列中的编辑图标并更改您所在域的文档根。
这是 htaccess 问题
在您的网络项目的根文件夹中获取一个 .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 ^(.*)/$ / [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 Not Found 在此服务器上找不到请求的资源!
尝试在 .env
中设置空 APP_URL
APP_URL=http://
我正在尝试在共享主机 cpanel 上部署我的 laravel 5.1 应用程序。但是我收到 404 错误。
404
Not Found
The resource requested could not be found on this server!
为了上传项目,我克隆了项目目录并通过他们的 FileManger 将其上传到 cpanel。然后将 Public 文件夹项目移动到 Public_Html。
我的.htaccess文件内容如下:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteBase /
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ / [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
我还在 index.php 中更改了以下行:
require __DIR__.'/../bootstrap/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';
到
require __DIR__.'/../objecsys/bootstrap/autoload.php';
$app = require_once __DIR__.'/../objecsys/bootstrap/app.php';
这种部署方法可能有什么问题?
在 cPanel 中部署 Laravel 应用程序非常简单(如果您在 add-on 域上部署)。
在 cPanel 中,继续 add-on 域,然后创建一个新的 add-on 域。
默认情况下,cPanel 以这种方式为您生成文档根目录:
public_html/mydomain.com
改为:
public_html/mydomain.com/MyLaravelApp/public
现在将您的 Laravel 项目上传到 public_html/mydomain.com
目录下。
它应该是这样的。
如果您已经有一个 add-on 域。转到修改 add-on 域(就在创建插件域下方)
单击文档根列中的编辑图标并更改您所在域的文档根。
这是 htaccess 问题
在您的网络项目的根文件夹中获取一个 .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 ^(.*)/$ / [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 Not Found 在此服务器上找不到请求的资源!
尝试在 .env
APP_URL=http://