Laravel-在路径后添加斜线

问题描述 投票:3回答:1

正如我在这里多次提到的,我正在使用Laravel重做我的一个旧站点。

我遇到的另一个问题如下:

  • 旧网站上主要有两种不同类型的网址:
    • /user-slug/用于用户主页,和
    • /user-slug/content-slug.html为其内容之一

我设法重新创建了第二个,但是当我尝试创建到用户路由的链接时,Laravel总是修剪最后一个斜杠,并且我以/user-slug这样的URL结尾>

[我不想在将旧网站切换到Laravel时丢失任何SEO,所以我想知道是否有可能强制Laravel在一个URL上附加斜杠吗?


到目前为止,我的代码:

app \ Providers \ RouteServiceProvider.php:

public function boot(Router $router)
{
    $router->pattern('user', '[a-zA-Z0-9_-]+');
    $router->pattern('content', '[a-zA-Z0-9_-]+');
    parent::boot($router);
}

app \ Http \ routes.php:

Route::group(['middleware' => ['web']], function () {
    Route::get('/', [
        'as'   => 'index',
        'uses' => 'BaseController@index',
    ]);

    Route::get('/{user}/', [
        'as'   => 'user',
        'uses' => 'UserController@show',
    ]);

    Route::get('/{user}/{content}.html', [
        'as'   => 'content',
        'uses' => 'ContentController@show',
    ]);
});

views / home.blade.php:

{!! Html::linkRoute('user', $content['user']['name'], [$content->user->slug]) !!}

如果没有解决方法,我将使用.htaccess文件将所有/user-slug/网址重定向到/user-slug,但如果可以避免的话,那很酷。

正如我在这里多次提到的,我正在使用Laravel重做我的一个旧站点。我遇到的另一个问题如下:在旧网站上,我主要有两种不同类型的url:/ ...

laravel laravel-5 seo laravel-5.2
1个回答
0
投票

嗯,我认为通过中间件等似乎有可能。

© www.soinside.com 2019 - 2024. All rights reserved.