【问题标题】:Problem to create a good SEO friendly route with Laravel使用 Laravel 创建良好的 SEO 友好路线的问题
【发布时间】:2020-01-27 12:33:59
【问题描述】:

我有一个 Laravel 的 SEO 项目,我想使用路由来配置友好的动态 url。 这是我的路线:

# Designs
    Route::get('/d/{article}-{tag}-{design_name}-{design_id}',['as' => 'web.product_design', 'uses' => 'ProductController@getProductDesign']);

我想建立这个 SEO 友好的网址:/d/mug-harry-potter-wingardium-leviosa-xfdsfsdf

这就是我所说的进入任何 laravel 刀片视图的路径:

 route('web.product_design',['article' => 'mug'), 'tag' => str_slug('Harry Potter'), 'design_name' => str_slug('Wingardium Leviosa'), 'design_id' => 'xfdsfsdf'])

问题是在 ProductController 内部我没有收到我想要的这些参数。我认为 Laravel 何时启动和何时完成 slug 会感到困惑。 比如在控制器方法中...

# Product Design Page
    public function getProductDesign($article,$tag,$design_name,$design_id) {
      dd($article); // It gives me back 'mug', that's right.
      dd($tag); // It return me 'harry', is WRONG, I want to get 'harry-potter'.
      dd($design_name); // It return me 'potter', is WRONG, I want to get 'wingardium-leviosa'.
      dd($design_id); // It return me 'wingardium-leviosa-xfdsfsdf', is WRONG, I want to get 'xfdsfsdf'.
     }

如何构建一个对 SEO 友好的 url,同时能够在控制器方法中正确获取参数?

【问题讨论】:

标签: php laravel laravel-5


【解决方案1】:

如果你的代码中有这个

mug-harry-potter-wingardium-leviosa-xfdsfsdf

并在- 上炸毁它,然后你就会在同一条船上。你怎么知道哈利波特是一个单一的实体而不是两个。如果您想在参数中包含空格,然后对其进行 slugify,那么您需要在 URL 的其余部分中选择不同的分隔符。

你可以改用_吗?

Route::get('/d/{article}_{tag}_{design_name}_{design_id}'

所以你的网址现在是

mug_harry-potter_wingardium_leviosa_xfdsfsdf

【讨论】:

    猜你喜欢
    • 2013-06-19
    • 1970-01-01
    • 2011-11-02
    • 2014-12-04
    • 2011-06-11
    • 2017-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多