Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Laravel - Add trailing slash with Redirect::route()

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.

like image 591
user3685965 Avatar asked Oct 20 '22 05:10

user3685965


2 Answers

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') . '/');
like image 190
Mengdi Gao Avatar answered Oct 24 '22 00:10

Mengdi Gao


This worked for me:

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

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

like image 33
Martín Mori Avatar answered Oct 24 '22 01:10

Martín Mori