问题:如何在 codeigniter 中从旧网址转移到对 seo 友好的网址?
示例:我有一个名为 library 的 codeigniter 控制器。URL 看起来像 www.domain.com/library
这对 seo 不友好,我希望它看起来像 www.domain.com/keyword-library 我该如何解决这个问题?.htaccess 和路由是不够的,因为我需要旧页面重定向到带有 301 的新 url,所以搜索引擎会选择这个。
问题:如何在 codeigniter 中从旧网址转移到对 seo 友好的网址?
示例:我有一个名为 library 的 codeigniter 控制器。URL 看起来像 www.domain.com/library
这对 seo 不友好,我希望它看起来像 www.domain.com/keyword-library 我该如何解决这个问题?.htaccess 和路由是不够的,因为我需要旧页面重定向到带有 301 的新 url,所以搜索引擎会选择这个。
我使用 application/config/routes.php 将新的 url 查询重新路由到旧的控制器对象
$route['keyword-library/(:any)/(:any)/(:any)/(:any)/(:any)'] = "library/$1/$2/$3/$4/$5";
$route['keyword-library/(:any)/(:any)/(:any)/(:any)'] = "library/$1/$2/$3/$4";
$route['keyword-library/(:any)/(:any)/(:any)'] = "library/$1/$2/$3";
$route['keyword-library/(:any)/(:any)'] = "library/$1/$2";
$route['keyword-library/(:any)'] = "library/$1";
$route['keyword-library'] = "library";
然后在执行任何其他代码之前的 /index.php 文件中,我添加它以将旧页面重新路由到新页面。
$uri = $_SERVER['REQUEST_URI'];
if(strpos($uri,'/library') === 0)
{
$expl = explode('/library',$uri);
//array_shift($expl);
$query = implode('',$expl);
$redirect= "https://".$_SERVER['HTTP_HOST'].'/orthomoleculaire-bibliotheek'.$query;
header( "Status: 301 Moved Permanently" );
header("Location: $redirect");
exit(0);
}
我曾尝试为此使用 .htaccess,但由于变量和可变长度的变化,我没有设法将旧网址重新路由到 301 的新网址。
如果有人知道更优雅的解决方案,请发布它,因为我一直找不到。