Как получить из заголовка запроса переменную %{HTTP:If-Modified-Since}

M
На сайте с 07.12.2009
Offline
16
3684

Ситуация такая:

В суперглобальном массиве $_SERVER переменной $_SERVER['HTTP_IF_MODIFIED_SINCE'] нет. Тоже самое и с массивом $_ENV.

Добавление в файл .htaccess следующего кода(mod_rewrite в настройках включен, модуль работает проверено!):

RewriteEngine on

RewriteRule .* - [E=HTTP_IF_MODIFIED_SINCE:%{HTTP:If-Modified-Since}]

RewriteRule .* - [E=HTTP_IF_NONE_MATCH:%{HTTP:If-None-Match}]

ситуацию не изменяет.

Может кто подскажет в чем тут дело?

Используете ли вы на сайте обработку заголовка HTTP:If-Modified-Since для поисковиков

Использую
33% (1)
Не использую
67% (2)
Всего проголосовало: 3
[umka]
На сайте с 25.05.2008
Offline
456
#1

1. Убедиться, что браузер (или что у вас там) действительно посылает этот заголовок.

2. Использовать в PHP функцию apache_request_headers()

<?php

$headers = apache_request_headers();

foreach ($headers as $header => $value) {
echo "$header: $value <br />\n";
}
?>
Лог в помощь!
M
На сайте с 07.12.2009
Offline
16
#2
'[umka:
;5984210']1. Убедиться, что браузер (или что у вас там) действительно посылает этот заголовок.
2. Использовать в PHP функцию apache_request_headers()

<?php

$headers = apache_request_headers();

foreach ($headers as $header => $value) {
echo "$header: $value <br />\n";
}
?>

1) Браузер посылает запрос If-Modified-Since, после того, как страница присылает в заголовке http - Last-Modified

2) конструкция php с функцией apache_request_headers не работает, так как переменной HTTP_IF_MODIFIED_SINCE нет в глобальных переменных, что можно увидеть, просто протестировав страничку с кодом php: echo phpinfo(), где увидим в таблице Apache Environment переменная HTTP_IF_MODIFIED_SINCE не имеет значение - "no value"

Так что вопрос остается открытым!

[umka]
На сайте с 25.05.2008
Offline
456
#3

Если функция apache_request_headers() говорит, что этого заголовка нет, то значит или браузер его не передаёт, или у вас апач стоит еще за каким-то проксирующим сервером, который ему этот заголовок, понятное дело, отдаёт.

M
На сайте с 07.12.2009
Offline
16
#4

Вопрос решен, действительно мой Apache получал запросы через кеширующий прокси-сервер, который фильтровал заголовок HTTP:If-Modified-Since. Проблема разрешилась сменой тарифа и переходом на выделенный IP.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий