Codeigniter:在config / routes.php文件中重定向?

时间:2014-04-12 12:09:21

标签: codeigniter routes url-redirection

我正在更新一个网站,并且需要将一堆旧网址重新路由到他们的新网站。我想做这个服务器端(而不是.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);

显然它不起作用,但这是可能的,即。将此代码保存在我的路由文件中(更符合逻辑),还是需要在某个控制器中设置功能?

感谢。

1 个答案:

答案 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)。