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

Posted

技术标签:

【中文标题】Laravel 4.2 应用程序在上传实时服务器后发生不必要的重定向【英文标题】:Laravel 4.2 application occurs unnecessary redirection after uploading live server 【发布时间】:2016-03-20 20:28:18 【问题描述】:

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

对不起我的英语不好。请帮我。我在下面附上了我的 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/ 用户:管理员密码:通过

我的路线:

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');

【问题讨论】:

你能更新你的路由和控制器吗? 是的,我正在更新我的路线。 删除我的评论后,这仍然显示给我。为什么? 只有你才能看到这个答案..不用担心;) 好的,为了测试,您可以将admin_dashboard.blade.php 文件放在views 文件夹中,然后更改为return View::make('admin_dashboard')-&gt;with('title', 'AdminDashboard'); 并告诉您会发生什么吗? 【参考方案1】:

当你使用 Laravel 4.2 时

您应在 Controller 中处理此问题。

这是我们处理的默认方式

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

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

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

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

建议:为什么不将upgrade 改为5.1?

【讨论】:

以上是关于Laravel 4.2 应用程序在上传实时服务器后发生不必要的重定向的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 桌面应用程序

如何在 laravel 4.2 中使用带有自定义预过滤器的 AJAX 上传 CSV 文件

Laravel 4.2 artisan CLI 在作曲家更新后不再工作

Laravel 4.2输入文件空

在实时服务器上安装 Laravel 依赖项

从 Laravel 4.2 升级到 5.0 后获取 POST 的路由未定义错误