我试图在共享主机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>
我还把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';
这种部署方式会有什么问题?
这是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>
刷新页面并查看
我的问题解决了
当我把laravel项目上传到服务器上时,我的应用程序只是打开了默认的路径。
但我在laravel中的所有其他网页路径都出现了错误。
错误是:404
laravel : 404 Not Found 请求的资源在这个服务器上找不到!