Codeigniter:从URL中删除控制器并禁用通过原始路径的访问

时间:2016-04-22 06:48:54

标签: codeigniter

原始网址

mydomain.com/main/portfolio

现在我需要使用以下Route成功完成URL中的控制器名称删除:

//Controller Name: main
$route['(:any)'] = "main/$1";

我的新网址很好:

mydomain.com/portfolio

但原始网址仍可访问,我不希望用于搜索引擎优化目的:

mydomain.com/main/portfolio

如何让我的正常网址正常运行并阻止旧网址。

感谢。

2 个答案:

答案 0 :(得分:1)

您可以创建一个未找到的页面,并将不需要的路由重定向到该页面。 例如,您可以创建错误控制器:

class Error extends CI_Controller {     
    public function error_404() {
        // send 404 header
        $this->output->set_status_header('404');
        // load a custom not found page view template
        $this->load->view('error_404');
    }        
}

然后在routes.php中,你可以捕获那些包含" main /"的URL。像这样:

// this should be placed above the (:any) route
$route['main/(:any)'] = 'error/error_404';
$route['(:any)'] = "main/$1";

答案 1 :(得分:0)

RedirectMatch "^/main/(.*)" "http://www.example.com/$1"

更多可用示例here