【发布时间】:2014-02-26 22:50:30
【问题描述】:
这是我的路线:
Route::get('location/{id}/{title?}', array('as' => 'scouting_single', 'uses' => 'ScoutingController@get_single'));
类很简单:
public function get_single($id, $title ='') {
$location = new Location;
if(is_numeric($id)) {
$location = $location->find($id);
if(isset($location)) {
$author = User::find($location->author);
$meta = $location->find($id)->metakeywords;
if($title == '') {
$slug = Str::slug($location->title);
return Redirect::to('location/'.$id.'/'.$slug);
}
return View::make('scoutingviews.view')->with('pagetitle', 'Location view')
->with('location', Location::find($id))
->with('author', $author)
->with('meta', $meta);
} else {
return Redirect::to('/')->with('message', 'That record is not available');
}
} else {
return Redirect::to('404');
}
}
一切似乎都很好,但在四处搜索之后,似乎其他人的做法有所不同,比如将 slug 保存到 db,但我只想将 id 包含到 url 中......并使其可选包含标题 slug .如果用户删除了 slug,它无论如何都会用 slug 重定向用户。
我还在学习 laravel,所以请原谅关于 seo 友好性的新手问题,我只是不希望 /{id}/ 和 /{id}/{title} 算作重复
【问题讨论】:
-
我注意到您的包含标题的 URL 似乎也包含 ID。这不是多余的吗?我原以为你会想要:
location/{id}或location/{title}?
标签: php laravel seo laravel-routing