Возможен ли такой редирект?

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем Hannibal Lector, 11 дек 2010.

Статус темы:
Закрыта.
  1. Hannibal Lector

    Hannibal Lector

    Регистр.:
    21 янв 2010
    Сообщения:
    198
    Симпатии:
    61
    Приветствую. Подскажите, пожалуйста, возможен ли редирект с несуществующей страницы сайта на главную. Тоесть, в кеше ПС иметься страница, которой на сайте уже нет. Так вот хотелось бы чтобы пользователь или робот, приходя по этой ссылке не получал 404, а был перенаправлен на главную?

    Только есть маленький нюанс, страниц очень очень много и прописывать вручную для каждой страницы не получиться или получиться лет через 5:smmne:. Хотелось бы чтобы этот процесс проходил на автомате, тоесть прописал правило и все кто приходит получают не страницу 404, а на главную.

    Заранее благодарен за помощь.
     
  2. o_nix

    o_nix

    Регистр.:
    7 ноя 2007
    Сообщения:
    1.073
    Симпатии:
    1.037
    проще некуда
    .htaccess
    Код:
    ErrorDocument 404 http://site.to/
     
    Hannibal Lector нравится это.
  3. B0nuse

    B0nuse Постоялец

    Регистр.:
    6 июн 2009
    Сообщения:
    105
    Симпатии:
    21
    Стоит учитывать, что в заголовке ответа сервера все равно прийдет 404. Но страницу отдаст ту, что надо.
     
  4. Hannibal Lector

    Hannibal Lector

    Регистр.:
    21 янв 2010
    Сообщения:
    198
    Симпатии:
    61
    Спасибо. Но почему-то в вордпрессом не работает. Вордпресс внутренними средствами движка выдает страницу 404. Как быть в этом случае? А то на главную оно все-равно не переправляет
     
  5. CNiks0N

    CNiks0N lamp.root

    Регистр.:
    28 ноя 2008
    Сообщения:
    230
    Симпатии:
    48
    в файле wp-app.php
    найти
    Код:
    function not_found() {
    	log_app('Status','404: Not Found');
    	header('Content-Type: text/plain');
    	status_header('404');
    	exit;
    }
    
    и заменить на

    Код:
    function not_found() {
    	Header( "HTTP/1.1 301 Moved Permanently" );
    	Header( "Location: http://www.".getenv('HTTP_HOST'). getenv('REQUEST_URI') );
    	exit;
    }
    
     
    Hannibal Lector нравится это.
  6. Hannibal Lector

    Hannibal Lector

    Регистр.:
    21 янв 2010
    Сообщения:
    198
    Симпатии:
    61
    То ли руки кривые, все сделал как сказано, но ничего не изменилось. Проверял на 2 блогах разных версий.
    Замена Header( "Location: http://www.site.com ); ничего не поменяла. Что не так?
     
  7. ShoxMaster

    ShoxMaster

    Регистр.:
    3 дек 2008
    Сообщения:
    393
    Симпатии:
    150
    Код:
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule .* http://site.to [R=301,L]
     
  8. DenisK

    DenisK

    Регистр.:
    8 фев 2007
    Сообщения:
    205
    Симпатии:
    13
    Во многих движках есть возможность задать Свою страницу ошибки 404, там и можно поставить редирект.
    В частности по WordPress - в папке с шаблонами есть файл 404.php Там и можно прописать тот инклюд, который вам посоветовали выше.

    Или такой вариант

    .htaccess
    PHP:
    ErrorDocument 404 /index.php
     
Статус темы:
Закрыта.