6

I'm trying to add a slash to the end of the URL after I use Redirect::route() with Laravel. I've tried numerous examples but couldnt find an answer.

This is what I have so far:

routes.php:

Route::get('/', function() {
    return Redirect::route('login');
});


Route::get('/login/', array(
    'as'    => 'login',
    'uses'  => 'Controller@login'
));

Controller.php:

public function login()
{
    return 'Login page';
}

When I go to htdocs/laravel_project/, I get redirected to htdocs/laravel_project/login but I want it to be htdocs/laravel_project/login/. I want to add that slash to the end of the URL. If I do manually enter the slash at the URL it does what I want.

shaedrich
  • 5,457
  • 3
  • 26
  • 42
user3685965
  • 61
  • 1
  • 3

2 Answers2

2

You are calling Redirect::route which translates to:

Redirect to the URL (with trailing slash trimmed) of a corresponding route.

Notice that Laravel will automatically remove the trailing slash of generated URL.

So, without further/deeper investigation, the fastest method would be:

return Redirect::to(URL::route('login') . '/');
Mengdi Gao
  • 780
  • 8
  • 23
2

This worked for me:

Redirect::to('example/page' . '\/', 301);

Use Redirect::to instead of Redirect::route and add . '\/' to the route

Martín Mori
  • 1,021
  • 1
  • 7
  • 5