我使用的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新的网址。
如果有人知道更优雅的解决方案,请张贴它,因为我一直没有找到。
是的,而不是使用Htaccess,最好是通过路由配置。 – hsuk 2012-07-17 09:47:50
为什么不只是''route ['keyword-library /?'] ='library''和'$ route ['keyword-library /(.*)'] ='library/$ 1''而不是那个方法? – 2012-07-17 11:16:00
@KusH,你可以看到我正在使用路由配置。问题是它不能解决搜索引擎的重定向301问题。它只是使现有页面的别名。谷歌讨厌双倍的内容。 – Tschallacka 2012-07-17 13:18:10