如何使用.htaccess从路由中删除第一个URI参数

时间:2019-01-22 07:43:06

标签: laravel .htaccess

我的路线/web.php中有以下路线。

Route::get('page/{slug}', 'PageController@index')->name('front.page.slug');
Route::get('inquiry/contact-us', 'ComplaintController@index')->name('front.complaint');
Route::get("product/{product}", 'ProductController@show')->name('front.get.product');

它可以正常工作e.g.

当我更改路线时,它显示出产品未在页面模型中退出的错误。

Route::get('{slug}', 'PageController@index')->name('front.page.slug');
Route::get('contact-us', 'ComplaintController@index')->name('front.complaint');
Route::get("{product}", 'ProductController@show')->name('front.get.product');

我不知道如何使用没有资源名称的塞子启动路由,以实现SEO友好URL E.g.

是否有htaccess条件可以删除前缀形式的URI?

3 个答案:

答案 0 :(得分:2)

您可以像以下示例一样进行操作:

Route::get('page-{slug}', 'PageController@index')->name('front.page.slug');
Route::get('contact-us', 'ComplaintController@index')->name('front.complaint');
Route::get("product-{product}", 'ProductController@show')->name('front.get.product');

您应该考虑两条路线之间的差异。

{product}和{slug}相同

答案 1 :(得分:0)

Route::get('{slug}', 'PageController@index')->name('front.page.slug');
Route::get('contact-us', 'ComplaintController@index')->name('front.complaint');

如果您喜欢那样。联系我们页面在front.page.slug路由中执行。

您不能在路由文件中使用两个变量。

像这样:

Route::get('contact-us', 'ComplaintController@index')->name('front.complaint');
Route::get('{slug}', 'WebController@index')->name('front.page.slug');

并确定控制器中{slug}的类别。是页还是商品?在同一控制器中执行此操作。否则,仅第一个{}在路由文件中起作用。

答案 2 :(得分:0)

laravel不将{slug}和{product}视为两条不同的路线