我正在使用共享托管服务器,我安装了我的第一个Laravel 5.4应用程序,一切都运行正常。几天前,我在另一个域上安装了另一个Laravel 5.4应用程序,但服务器相同,但是当我尝试访问该URL时,我得到了500 INTERNAL SERVER ERROR
。
以下是我的.htaccess
代码
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
我也尝试了以下内容,但同样的错误:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
### Add two lines for fix error 500 ###
Options -Indexes
php_flag xcache.cacher 0
#######################################
# 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>
答案 0 :(得分:3)
您移动了highA
文件夹中您不应该做的所有内容。只有public_html
内的文件需要位于/public
,因此名称为public_html
。 Laravel文件应放在较高的目录中,无法从公众访问。
public
composer
安装Laravel
/home/username/laravel
文件夹中的所有内容移至
/home/username/public_html
/home/username/laravel
中的所有内容移至/home/username/laravel/public
并移动后删除公用文件夹。/home/username/public_html
/home/username/public_html/index.php
require '/home/username/laravel/vendor/autoload.php';
保存此文件并关闭窗口。
编辑此文件:$app = require_once '/home/username/laravel/bootstrap/app.php';
更改为:
/home/username/laravel/server.php
将if ($uri !== '/' && file_exists('/home/username/public_html'.$uri)) {
return false;
}
require_once '/home/username/public_html/index.php';
替换为您的托管用户名。 :)