За последние 24 часа нас посетили 17536 программистов и 1605 роботов. Сейчас ищут 1166 программистов ...

Опять заголовки

Тема в разделе "PHP для новичков", создана пользователем izstora, 20 ноя 2007.

  1. izstora

    izstora Активный пользователь

    С нами с:
    9 ноя 2007
    Сообщения:
    15
    Симпатии:
    0
    Пишу в продолжении этой темы.

    Выяснилось, что т.к. интерпретатор php работает как cgi, для выдачи статуса страницы нужно использовать вместо
    Header("HTTP/1.0 200 OK");

    такую штуку
    header('Status: 200 Ok');

    Статус с 404-го на 200-й поменялся, но теперь в IE появился кеш.
    Я его вырубал такой строчкой
    header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');

    Теперь, если писать header('Status: 200 Ok'), не знаю как вырубить кеш.


    В заголовках при этом меняется только статус.
    Код (Text):
    1. Статус: 404 (или 200)
    2. HTTP/1.1 404 Not Found (тут соответственно во втором случае тоже 200)
    3. Date: Mon, 19 Nov 2007 18:40:33 GMT
    4. Content-Type: text/html; charset=windows-1251
    5. Transfer-Encoding: chunked
    6. Connection: close
    7. Server: Apache/1.3.37 (Unix)
    8. Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    9. Pragma: no-cache
    10. Last-Modified: Thu, 01 Jan 1970 00:00:00 GMT

    Заранее спасибо.
     
  2. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
  3. izstora

    izstora Активный пользователь

    С нами с:
    9 ноя 2007
    Сообщения:
    15
    Симпатии:
    0
    Теперь в IE появился кэш.
    Это большая проблема. Контент меняется. А люди видят старое содержание.
    Это происходит после замены Header("HTTP/1.0 200 OK"); на header('Status: 200 Ok');

    Вопрос в том, как избавиться от кэша?
     
  4. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
    попробуй proxy-revalidate
     
  5. izstora

    izstora Активный пользователь

    С нами с:
    9 ноя 2007
    Сообщения:
    15
    Симпатии:
    0
    Я извиняюсь. А можно чуть подробнее. proxy-revalidate - это как
     
  6. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
  7. izstora

    izstora Активный пользователь

    С нами с:
    9 ноя 2007
    Сообщения:
    15
    Симпатии:
    0
    Luge
    спасибо за ссылку.

    Проблему решил. Но дело оказалось в Last-Modified. В первом посте видно, что там было.
    Я сделал так header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");

    Только теперь все страницы имеют в Last-Modified текущее время.
    Насколько это корректно?
     
  8. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Браузер воспринимает, как свежую информацию, каждый раз, когда ты открываешь страницу. Ты же этого хотел добиться? Чего тогда спрашиваешь? =)
     
  9. izstora

    izstora Активный пользователь

    С нами с:
    9 ноя 2007
    Сообщения:
    15
    Симпатии:
    0
    Я понимаю. Это ведь не совсем корректно. Информация может быть и старой. Как такие заголовки воспринимают поисковики?
     
  10. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    заносят в планы проиндексировать.
     
  11. izstora

    izstora Активный пользователь

    С нами с:
    9 ноя 2007
    Сообщения:
    15
    Симпатии:
    0
    Короче это не страшно. Я правильно понял?