这是我第一次上传到Laravel网站的远程服务器。
本地我已经配置了一个虚拟主机,因此我对我的网站的访问权限就像:
site.domain.com //it's pointing htdocs/laravel-proyect/public
我已将我的网站上传到我的远程服务器,然后:
更改app.php的配置
'url'=> 'http://site.domain.com',
使用新参数(以及email.php)更改database.app中的配置
然后我尝试加载我的网站并获得500内部服务器错误
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
它有点工作,我在routes.php中有这个代码:
// Begins in the login view
Route::get('/', function()
{
if (!Sentry::check()) {
$data = array();
if (Session::has('email')) {
$data = array('email' => Session::get('email'));
}
return Redirect::route('login', $data);
}
else
return Redirect::route('users');
});
/ ========================================
// LOGIN, LOGOUT AND ACTIVATION SECTION ==========
// // ============================================
// show the login page
Route::get(MyHelpers::textLang('login','routes'), array('as' => 'login', function()
{
if (Sentry::check())return Redirect::route('users');
else {
$rules = User::$rules_login;
// show the login page (app/views/frontend/login.blade.php)
return View::make('frontend.login', compact('rules'));
}
所以在第一时间mo url看起来像:
site.domain.com/entrar
'entrar',(以西班牙语登录),y由MyHelpers设置:: textLang('login','routes'),访问我的班级MyHelpers和lang文件,将'login'翻译成'entrar',但是不要加载模板。
开始:
其实我的.htaccess是:
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
我没有更多的想法,也找不到与此相关的其他解决方案。
有什么想法吗?拜托,我疯了,在wensday,我必须接受一个新的项目,并且还在使用这个项目。
由于
答案 0 :(得分:6)
我必须添加
RewriteBase /
到.htaccess
答案 1 :(得分:1)
我在heroku Simple Blog上有一个演示laravel应用程序。我的.htaccess文件是:
Route::get('/','basic configurations are correct');
您的.htaccess文件似乎没有问题。代码逻辑可能有问题。如果在localhost上没有使用相同代码的错误,请再次检查您的配置。对于laravel 4,stackoverflow Laravel 4 Virtual Host and mod rewrite setup
上已存在类似的问题请注意,laravel 5(如果您使用它)从.env文件中获取输入(数据库连接和其他设置)。
如果您仍然收到错误,请尝试在索引页面上发送简单响应,如:
{{1}}
然后逐步使其复杂化。它将帮助您找到错误。
答案 2 :(得分:0)
@kikerrobles的答案确实有效。
您最终的.htaccess
文件应如下所示
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
RewriteBase /
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>