如何在 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根目录