Not Found c передачей реферера

Тема в разделе "PHP", создана пользователем apekoff, 6 дек 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. apekoff

    apekoff Создатель

    Регистр.:
    19 авг 2008
    Сообщения:
    40
    Симпатии:
    1
    Первый вопрос. туда ли пишу ..
    Второй вопрос.
    Люди добрые .Ситуация такая! Сайт проиндексирован в гугл .Но после взлома весь контент потерли (1.5к страниц).Все находится до сих пор в выдаче ..Восстанавливать страницы очень геморно
    При обращении к несуществующей странице - выдает ошибку 404
    Нужно заменить ее на копию Главной страницы , с передачей реферера..
    Тоесть так
    было _http://site/stranica.html - 404 not found
    стало _http://site/stranica.html - тут в теле бывшей 404 ошибки сорс морды (index.html) + передача реферера
     
  2. Dj_StelS

    Dj_StelS

    Регистр.:
    9 янв 2009
    Сообщения:
    349
    Симпатии:
    79
    можно сделать через htaccess, но тогда все 404 ошибки будут выдавать главную:
    Код:
    ErrorDocument 404 http://site/stranica.html
     
  3. Mapkyc

    Mapkyc Постоялец

    Регистр.:
    8 май 2007
    Сообщения:
    106
    Симпатии:
    45
    Могли бы понятнее высказаться куда рефферер передовать..:)

    Вообщем как я понял надо перенаправлять юзера на какюто страницу и передавать параметром рефферер (это то откуда он пришел.. например с ПС) или все-таки ури (REQUEST_URI - это адресс по которой запросили несуществующюю страницу) и отдавать браузеру заголовок 404 (что не очень хорошо, если страница еще в индексе и Вы хотите ее восстановить)
    Как вариант можно так:

    в .htaccess добавить
    ErrorDocument 404 error.php

    вообще аппач сам станет отдавать заголовок 404

    в error.php

    <?
    header("HTTP/1.1 404 Not Found");
    header("Status: 404 Not Found");
    header("Location: index.php?ref=".$_SERVER['HTTP_REFERER']."&uri=".$_SERVER['REQUEST_URI']);
    ?>
     
  4. StDutch

    StDutch

    Регистр.:
    18 дек 2007
    Сообщения:
    337
    Симпатии:
    116
    Для чего тебе нужно знать реферер? Может достанешь его потом из логов (error_log апача)? Тогда используй способ из предыдущего мессаджа.

    Иначе зарули все на index.php (ErrorDocument ...), в нем тебе будет доступен запрошенный URL, реферер, и из него ты сможешь выводить любой контент.
     
  5. apekoff

    apekoff Создатель

    Регистр.:
    19 авг 2008
    Сообщения:
    40
    Симпатии:
    1
    Ребята ,а вот чтоб не отдавал код 404 как сделать ?
    сделал по этому примеру
     
Статус темы:
Закрыта.