上传实时服务器后,Laravel 4.2应用程序会发生不必要的重定向

时间:2015-12-15 06:42:13

标签: .htaccess laravel laravel-4 url-redirection laravel-routing

我的laravel(4.2)应用程序在localhost(xampp)上运行正常。但是在尝试登录后上传到实时服务器后,它显示一个空白页面,上面有一条消息说“#34;重定向到我的主页”#34;。它还会引发登录错误

抱歉我的英语不好。请帮我。我在下面附上我的htaccess:

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

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]

这是我的控制器功能。

public function adminLoginCheck() {
$validation_rule = array(
    'username' => array('required', 'min:5', 'max:50'),
    'password' => array('required', 'min:6', 'max:50')
);
$validation = Validator::make(Input::all(), $validation_rule);
// Validation Check
if ($validation->fails()) {
    return Redirect::to('/')->withErrors($validation);
} // After Validation Authentication start
else {
    $athentication = Auth::attempt(array('username' => Input :: get('username'), 'password' => Input :: get('password')));
    // When Authentication True
    if ($athentication) { 
        $rememberme = Input::get('remember');
        if(!empty($rememberme)){
            //Remember Login data
           Auth::loginUsingId(Auth::user()->id,true);
        }
        //Redrict to the Target page
        return Redirect::intended('adminDashboard');
    } else {
        //Redrict Login Form with Authentication error massege.
        return Redirect::to('/')->with('authentication_error', 'Username or Password is not valid!');
    }
}

}

我的Auth过滤器如下:

Route::filter('auth', function(){if (Auth::guest()){
if (Request::ajax())
{
    return Response::make('Unauthorized', 401);
}
else
{
    return Redirect::guest('login');
}  }  })

所有的刀片模板都可用。我不明白为什么空白页面会出现重定向信息。即使在没有输入的情况下提交登录信息

  

用户名和密码   这是实时网址http://noveltyshop.tech-novelty.com/   user:admin pass:pass

我的路线:

Route::get('/', array('as' => 'admin', 'uses' => 'UsersController@adminLoginForm'));
Route::post('/login', array('as' => 'login', 'uses' => 'UsersController@adminLoginCheck'));
Route::get('/adminDashboard', array('as' => 'adminDashboard', 'uses' => 'UsersController@adminDashboard')); 
Route::get('/logout', array('as' => 'logout', 'uses' => 'UsersController@getLogOut')); 
Route::get('/updateUserProfileForm', array('as' => 'updateUserProfileForm', 'uses' => 'UsersController@updateUserProfileForm'));
Route::post('/updateUserProfile', array('as' => 'updateUserProfile', 'uses' => 'UsersController@updateUserProfile')); 
  

UsersController @ adminDashboard

public function adminDashboard() {
    return View::make('admin.pages.admin_dashboard')->with('title', 'AdminDashboard');
}

1 个答案:

答案 0 :(得分:2)

当您使用Laravel 4.2时

您应在控制器中处理此问题。

这是我们处理的默认方式

if (Auth::attempt(['email' => $email, 'password' => $password])) {
    return Redirect::intended('yourTargetPageAfterLogin');
}

在auth过滤器中你应该有这个

Route::filter('auth', function() {
    if (Auth::guest()) {
        return Redirect::guest('login');
    }
});

注意:确保您拥有控制器中定义的刀片

建议:为什么不upgrade5.1