【问题标题】:How to use page.php?id={id} routes on laravel如何在 laravel 上使用 page.php?id={id} 路由
【发布时间】:2017-11-06 04:02:38
【问题描述】:

我正在用 laravel 重写一个网站,为了 SEO,我必须创建一些路由来执行 301 重定向,以防访问者访问该网站的旧式链接:

使用 Laravel 5.4 + PHP 7.0

例如:
旧链接:www.website.com/category.php?category={id}
将重定向到:
新链接:www.website.com/category/{category-name}

但是当我在 laravel 上创建这样的路由时,它不起作用:

Route::get('/category.php?category={id}', function ($id) {
 // Old route style, search new route and do the redirect.
});

如果我删除“?”它有点工作,但它不会针对我的旧链接,因为没有“?”在网址中。

laravel 支持这个吗?
如果不是,那么有什么好的方法可以实现这一目标?

【问题讨论】:

    标签: php laravel redirect routes


    【解决方案1】:

    像这样制作您的路线并传递类别ID。例如我拿了 10 个。

    <a href="www.website.com/category.php?category=10">button</a>
    

    并从请求对象中获取 id。

    Route::get('/category.php', function (\Illuminate\Http\Request $request) {
        $id = $request->category;
        // Old route style, search new route and do the redirect.
    });
    

    【讨论】:

      【解决方案2】:

      在这种情况下,Htaccess 是您的朋友。您可以创建从旧类别库到新类别库的 301 重定向,如下所示:

      RewriteEngine on
      RewriteBase /
      RewriteRule ^category.php?category=(.*) http://www.website.com/category/$1 [R=301,L]
      

      【讨论】:

      • 感谢@reinierkors 的提示,但我需要使用友好的 url 从 ID 重定向到 URL 中的类别名称!
      【解决方案3】:

      你的控制器是什么? 你可以得到你的控制器资源 所有这些路线都将毫无痛苦地添加到您的路线:列表中。

      Route:: resource ('category', 'controller');
      

      【讨论】:

        猜你喜欢
        • 2018-03-25
        • 1970-01-01
        • 2014-10-23
        • 2021-01-04
        • 1970-01-01
        • 2013-07-15
        • 1970-01-01
        • 2013-05-21
        • 2021-03-03
        相关资源
        最近更新 更多