【问题标题】:Laravel routing hide pathLaravel 路由隐藏路径
【发布时间】:2018-05-24 03:11:42
【问题描述】:

我有这样的路线

http://localhost:8000/produk/slug-product

我想要这样的网址,删除网址中的 produk

http://localhost:8000/slug-product

我该怎么办?

【问题讨论】:

  • 将路由 URI 更改为没有 produk

标签: laravel .htaccess routing laravel-routing


【解决方案1】:

不要使用.htaccess 来处理这个问题。在应用中的路线列表末尾为没有任何段的 slug 定义路线:

Route::get('{slug}', 'FrontController@getBySlug');

因此,所有与任何路由无关的请求都将转到getBySlug 方法:

public function getBySlug($slug)
{
    $data = Model::findBySlug($slug);
    ....
}

【讨论】:

  • 路由无法读取,其他 URL 路由。它只是读取 Route::get('{slug}', 'FrontController@getBySlug');。例如:我有这样的路线 Route::get('{category}', ['as' => 'category', 'uses' => 'Client\ProductController@category']); Route::get('/login', ['as' => 'login', 'uses' => 'Client\ProductController@all_category']);它只是读取 Route::get('{category}', ['as' => 'category', 'uses' => 'Client\ProductController@category']);
  • Route::get('produk/{slug}', 'FrontController@getBySlug'),我想删除 url 中的 produk
  • 以上答案是正确的。但是将您的“slug”路线放在路线文件的末尾。把它作为最后一条路线。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-21
  • 2017-03-24
  • 1970-01-01
  • 1970-01-01
  • 2021-09-17
相关资源
最近更新 更多