Laravel -使用Redirect::route()添加尾部斜杠

pnwntuvh  于 12个月前  发布在  其他
关注(0)|答案(3)|浏览(141)

我试着在Laravel中使用Redirect::route()后在URL的末尾添加一个斜杠。我试过很多例子,但找不到答案。
这是我目前所拥有的:
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';
}


当我转到htdocs/laravel_project/时,我被重定向到htdocs/laravel_project/login,但我希望它是htdocs/laravel_project/login/。我想在URL的末尾添加斜杠。如果我手动输入URL处的斜杠,它会按照我的要求执行。

aydmsdu9

aydmsdu91#

您正在调用Redirect::route,其翻译为:
重定向到相应路由的URL(结尾的斜杠被修剪)。
注意,Laravel会自动删除生成的URL的尾部斜杠。
因此,如果没有进一步/深入的调查,最快的方法是:

return Redirect::to(URL::route('login') . '/');

字符串

kkih6yb8

kkih6yb82#

这对我很有效:

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

字符串
使用Redirect::to代替Redirect::route,并将. '\/'添加到路由中

yk9xbfzb

yk9xbfzb3#

这可能有点晚,但这个技巧最近帮助了我。
Redirect::to方法仍然从URL的末尾删除“/”,我从SEO报告中得到了讨厌的内部重定向问题-非“/”重定向到我想要的地方,这是一个2重定向链,而不是直接重定向到最终位置。
对于Laravel 5.8及更高版本(我没有测试早期版本),我使用Redirect::away方法来保存URL末尾的尾随斜杠。
因此,您可以使用此功能来避免内部重定向问题:

Redirect::away(URL::route('login') . '/',301);

字符串

相关问题