Laravel制作一个简短的URL

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

我想删除URL的一部分以使laravel应用程序中的URL更短。

这是我的路线定义:

Route::get('/category/{slug}','CourseController@courseCategory');
Route::get('/course/{slug}','CourseController@detail');

示例我有客户服务和睡眠护理类别。还有一门名为“睡眠护理lvl 1”的课程,因此我可以通过以下链接访问这些类别和课程:

  • mydomain.com/category/customer-service
  • mydomain.com/category/sleep-care
  • mydomain.com/course/sleep-care-lvl-1

[我想知道如何通过删除URL中的类别和课程来使URL变短,从而使URL变为:

  • mydomain.com/customer-service
  • mydomain.com/sleep-care
  • mydomain.com/sleep-care-lvl-1

非常感谢!

laravel .htaccess friendly-url
1个回答
0
投票

最后,路由只是字符串。

实现您想要做的最简单的方法是通过更新路线

Route::get('/category/{slug}','CourseController@courseCategory');
Route::get('/course/{slug}','CourseController@detail');

将成为

Route::get('my-short-route','CourseController@courseCategory');
Route::get('my-other-short-route','CourseController@detail');

但是,这不能解决您的问题,也不是一个好的解决方案,

但确实是一个兴趣点。

如果不重构整个应用程序,您将无法做的事情。没有.htaccess可以帮助您解决此问题,因为您需要在应用程序中拥有一个入口点。

该入口点不能是通配符变量。

意味着您将无法执行此操作

Route::get('{slug}','CourseController@courseCategory');

因为这将起到全部作用

您可以做类似的事情

  • mydomain.com/this-is-a-random-string

将在courseCategory上触发CourseController方法的人>

这是正确的约定,我不会更改它

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