如何在 laravel 上使用 page.php?id=id 路由

Posted

技术标签:

【中文标题】如何在 laravel 上使用 page.php?id=id 路由【英文标题】: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 支持这个吗? 如果不是,那么有什么好的方法可以实现这一目标?

【问题讨论】:

【参考方案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');

【讨论】:

以上是关于如何在 laravel 上使用 page.php?id=id 路由的主要内容,如果未能解决你的问题,请参考以下文章

如何在WordPress page.php,single.php中加载style.css根目录

使用 PHP 从 mysql 显示的可点击数据

URL结构/page.php与PHP中的/page [重复]

使用 .htaccess 排除奇怪的页面

如何使用会话将值从一个php页面传递到另一个页面

从 WordPress function.php 调用函数到 page-home.php