Направьте пользователя в Wordpress в случае ошибки 404 в codeigniter - PullRequest
0 голосов
/ 19 февраля 2011

Я пытаюсь выяснить, как сделать так, чтобы, если пользователь вводит URL-адрес и получает сообщение об ошибке 404, он перенаправляется в wordpress, чтобы посмотреть, сможет ли он определить URL-адрес.

В настоящее время у меня есть сайт xyz.com, где это WordPress сайт. Я разрабатываю замену, где xyz.com будет сайтом codeigniter. Я сохраню часть WordPress. Xyz.com/blog будет WordPress.

Мне бы хотелось, чтобы старые URL-адреса в поисковых системах могли перенаправлять на блог, который по-прежнему содержит те же данные, что и раньше, но теперь находится в /blog.

.

Что было бы лучшим способом сделать это.

Спасибо

1 Ответ

0 голосов
/ 19 февраля 2011

Это будет отправлять любые 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 /" вперед ним, и проверьте, существует ли файл.Если это так, перенаправьте ... если нет, перейдите на другую страницу с ошибкой.Итак, в контроллере «error»:

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;
}

Я надеюсь, что это поможет!

update : изначально предполагалось использовать htaccess, но поскольку все в CI проходитindex.php .... это действительно не нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...