我正在试图弄清楚如何制作它,以便如果用户输入网址并收到404错误消息,他们会被路由到wordpress以查看它是否能找出网址。
目前我有一个网站 xyz.com它是一个wordpress网站。我正在设计一个替代品,其中xyz.com将成为一个codeigniter网站。我将保留wordpress部分xyz.com/blog将是wordpress。
我希望搜索引擎上的旧网址能够重定向到仍然具有与以前相同数据的博客,但现在位于/ blog下。
实现这一目标的最佳方式是什么。
由于
答案 0 :(得分:0)
这会将任何404发送到自定义“/ error”控制器,以及原始请求的uri字符串:
class MY_Exceptions extends CI_Exceptions{
function __constructor(){
parent::CI_Exceptions();
}
function show_404($page=''){
header('Location: /error'.$_SERVER['REQUEST_URI']);
exit;
}
}
然后控制器可以获取URI字符串,在其前面添加“/ blog /”,并检查文件是否存在。如果是,重定向...如果没有,请转到另一个错误页面。所以在控制器“错误”中:
function index()
{
$this->load->helper('url');
// remove "/error" from the uri
$uri = substr($this->uri->uri_string(),0,6);
$newuri = base_url() . "blog" . $uri;
if(file_exists($newuri)):
redirect($newuri,'location',301);
else:
redirect("/anotherErrorPage");
endif;
}
我希望有所帮助!
更新:原本以为使用htaccess,但是由于CI中的所有内容都经过,因此不需要index.php ....