我正在更新一个网站,并且需要将一堆旧网址重新路由到他们的新网站。我想做这个服务器端(而不是.htaccess)
如果在我的config / routes.php中,我可以声明这样的内容,这将是一个整洁的:
$route['old_url_1'] = redirect('/new/url/1', 'location', 301);
$route['old_url_2'] = redirect('/new/url/2', 'location', 301);
$route['old_url_3'] = redirect('/new/url/3', 'location', 301);
显然它不起作用,但这是可能的,即。将此代码保存在我的路由文件中(更符合逻辑),还是需要在某个控制器中设置功能?
感谢。
答案 0 :(得分:1)
是的,您需要创建一些东西(控制器上的方法),它将使用301代码重定向浏览器。像这样:
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class Redirectme extends MY_Controller {
public function index($url=false) {
if($url===false)
redirect('/');
redirect('/new/url/'.$url,'location',301);
}
}
?>
并添加到route.php
$route['old_url_(:any)'] = "redirectme/index/$1";
无论如何,通过.htaccess重定向的最佳做法(因为它甚至不会从网络服务器调用php-module)。