我正在做的项目中默认的链接结构如下;
https://abcsite.com/abcsite/about-us
但是中间的路径没有被使用,如何删除它?
再举个例子,解决方案页面的链接结构如下;
https://abcsite.com/abcsite/solutions-1/what-is-abscsite-6
/abcsite、/solutions-1,此路径未使用。
我想删除这些路径和末尾的id号。
我查看了路由和中间件结构,但无法得出结论
要实现所需的干净 URL 结构并删除未使用的路径和 ID 号,您可以考虑以下步骤:
更新路线: 检查您的路由并确保它们与所需的 URL 结构匹配。您可能想简化结构并删除不必要的部分。
示例:
Route::get('/about-us', 'AboutUsController@index')->name('about-us');
Route::get('/solutions', 'SolutionsController@index')->name('solutions');
Route::get('/solutions/what-is-abcsite', 'SolutionsController@whatIsAbcSite')->name('solutions.what-is-abcsite');
控制器操作: 更新您的控制器操作以反映简化的 URL。删除不必要的路径段和 ID。
示例:
class AboutUsController extends Controller
{
public function index()
{
return view('about-us');
}
}
class SolutionsController extends Controller
{
public function index()
{
return view('solutions.index');
}
public function whatIsAbcSite()
{
return view('solutions.what-is-abcsite');
}
}
更新视图中的链接: 更新刀片视图中的链接以匹配简化的结构。
示例:
<!-- Link to About Us -->
<a href="{{ route('about-us') }}">About Us</a>
<!-- Link to Solutions -->
<a href="{{ route('solutions') }}">Solutions</a>
<!-- Link to What Is ABCSite in Solutions -->
<a href="{{ route('solutions.what-is-abcsite') }}">What Is ABCSite</a>
清除路由缓存: 更改路由后,清除路由缓存以应用更新:
php artisan route:clear
检查重定向: 如果旧 URL 仍然导致 404 错误,请检查是否存在任何可能与新结构冲突的重定向。
检查 .htaccess 或服务器配置: 如果您使用的是 Apache,请确保您的 .htaccess 文件配置正确。如果您使用 Nginx 或其他服务器,请确保服务器配置允许所需的 URL 结构。
进行这些更改后,您应该拥有更清晰的 URL 结构,没有未使用的路径段和 ID 号。请记住彻底测试以确保所有链接和路由都按预期工作。
这个方法在我的项目中不起作用,项目中有路由结构;
Route::get(Session::get('locale').'/'.trans('site.abc').'/{link}/{link2}', [SitePageController::class, 'subDetail']);
类结构也如下;
public function subDetail(Request $request, $toplink, $link)
{
$page = Pagedescription::whereLink($link)->first();
$record = Pages::whereId($page->page_id)->first();
$topPage = Pagedescription::whereLink($toplink)->first();
$topRecord = Pages::whereId($topPage->page_id)->first();
if ($record->parent_id == 1) {
if ($record->id == 39) {
return View('site.pages.forwho', compact('record'));
} else {
return View('site.pages.discover', compact('record'));
}
} elseif ($topRecord->id == 2) {
$customerComments = Pages::whereId(29)->first();
return View('site.pages.solutions', compact('record', 'customerComments'));
} elseif ($topRecord->id == 3) {
return View('site.pages.features', compact('record'));
} elseif ($topRecord->id == 33) {
return View('site.pages.blogDetail', compact('record'));
} elseif ($record->id == 86) {
return View('site.pages.helpCenter', compact('record'));
} elseif ($record->parent_id == 206) {
return View('site.pages.expert', compact('record'));
} else {
$otherPages = Pages::whereParentId($record->parent_id)->orderBy('ordernum', 'ASC')->get();
return View('site.pages.blankPage', compact('record', 'otherPages'));
}
}