Форум » Система построения сайтов » Разное » htaccess + сброс кеширования
Открыть Ответить

htaccess + сброс кеширования

0

0

1
06.12.2008 14:39:07

Привет всем!

Кто знает что нужно прописать чтобы например один раз в 24 часа при наборе адреса сайта http://site.ru у пользователя автоматически менялось на http://site.ru/index.php? чтобы сбросить кеш для сайта у браузера пользователя.
Только один раз в 24 часа.

Rado
Rado
3.19

3.19

2
07.12.2008 03:29:25

Принципиально с htaccess?
Почему бы не реализовать данную функцию при помощи PHP?


О сколько нам открытий чудных, Готовит просвещенья дух, И опыт, сын ошибок трудных, И гений, парадоксов друг...

SLAED CMS
SLAED CMS
3.24

3.24

3
07.12.2008 08:31:27

нет ну с помощью php тоже можно, только как :)

Rado
Rado
3.19

3.19

4
07.12.2008 14:02:04 07.12.2008 14:03:29

Для версии SLAED CMS 4.* Pro

1. Войдите в панель управления системой, отдел: Панель администратора >> Редактор
2. В файл внедрения в шапку системы: config_header.php

Добавляем следующую запись

PHP
# Адрес перенаправления
$metlink = "index.php?";

# Время, указанное в секундах, в нашем случае 24 часа
$mtime = "86400";

# Права на файл CHMOD 666
$sess_f = "config/counter/csess.txt";

$sess_t = (file_exists($sess_f) && filesize($sess_f) != 0) ? file_get_contents($sess_f) : 0;
$past = time() - intval($mtime);
if ($sess_t < $past || !$sess_t) {
	
	# Перенаправление методом HTML
	echo '<meta http-equiv="refresh" content="0; url='.$metlink.'">';
	
	@unlink($sess_f);
	$fp = @fopen($sess_f, "wb");
	fwrite($fp, time());
	fclose($fp);
}

Вместо перенаправления методом HTML можно использовать любой другой метод или функцию.


О сколько нам открытий чудных, Готовит просвещенья дух, И опыт, сын ошибок трудных, И гений, парадоксов друг...

SLAED CMS
SLAED CMS
3.24

3.24

5
07.12.2008 17:06:06

спасибо, вроде работает но как-то неправильно:
Перенаправление происходит после того как посетитель загрузил страницу сайта целиком например http://site.ru? как только сайт загрузился происходит еще раз загрузка http://site.ru/index.php?. Получается что загрузка происходит дважды, а нужно чтобы при вводе адреса сайта он заменялся сразу же на http://site.ru/index.php?

Rado
Rado
3.19

3.19

6
07.12.2008 17:49:58 07.12.2008 17:53:23

Без загрузки скрипта он не может быть выполнен. Поэтому его загрузка, потом выполнение.

Замените:

PHP
# Перенаправление методом HTML 
echo '<meta http-equiv="refresh" content="0; url='.$metlink.'">';

На:

PHP
header("Location: ".$metlink);

Да, кстати, что за странный кэш у Вас?
Вы отключили запрет кэширования стандартным методом по средствам файла: function/no-cache.php ?


О сколько нам открытий чудных, Готовит просвещенья дух, И опыт, сын ошибок трудных, И гений, парадоксов друг...

SLAED CMS
SLAED CMS
3.24

3.24

7
08.12.2008 14:11:46 08.12.2008 14:24:34

SLAED CMS Эм...мне кажется что таким способом Вы скинете за 24 часа кэш браузера ТОЛЬКО у ОДНОГО пользователя, у следующих же которые будут к Вам заходить на сайт Вы ничего не скинете....потому что после захода того одного $sess_t будет больше $past ...

Rado, тут надо пробывать как то иначе, либо в куки писать время последнего посещения, а затем в зависимости от значения делать проверку...либо как-то иначе..

Без загрузки скрипта он не может быть выполнен. Поэтому его загрузка, потом выполнение.

Мде...а если вставить это в файл www.site.ru/index.php после define('MODULE_FILE', true); то пользователя сразу перенаправит куда Вы пожелаете без двойной загрузки страницы:

Код
# Адрес перенаправления 
$metlink = "http://site.ru/index.php?"; 

# Время, указанное в секундах, в нашем случае 24 часа 
$mtime = "86400"; 

# Права на файл CHMOD 666 
$sess_f = "config/counter/csess.txt"; 

$sess_t = (file_exists($sess_f) && filesize($sess_f) != 0) ? file_get_contents($sess_f) : 0; 
$past = time() - intval($mtime); 
if ($sess_t < $past || !$sess_t) { 

# Перенаправление 
Header( "HTTP/1.1 301 Moved Permanently");
Header("Content-Type: text/html; charset=windows-1251");
Header("Location: $metlink");

@unlink($sess_f); 
$fp = @fopen($sess_f, "wb"); 
fwrite($fp, time()); 
fclose($fp); 
}
111111
111111
5

5

8
08.12.2008 15:11:00

111111, да, действительно, Вы правы, упустил из вида.
В этом случае сохранение времени в Cookie самый оптимальный, на мой взгляд, выход.

Но опять же, Rado, от чего такое длительное сохранение кэша? В принципе такого быть не должно, если не отключён файл function/no-cache.php


О сколько нам открытий чудных, Готовит просвещенья дух, И опыт, сын ошибок трудных, И гений, парадоксов друг...

SLAED CMS
SLAED CMS
3.24

3.24

9
09.12.2008 18:30:05

Да нет кеш обычный, просто заметил, что у пользователей браузера Опера, кеш сохраняется средствами самого браузера и при повторном открытии сайта кеш срабатывает и посетитель не всегда видит обновленный сайт.
Если пустить этого пользователя по адресу http://site.ru/index.php? то он у него очищается, вот и хотелось это дело автоматизировать.

Rado
Rado
3.19

3.19

10
09.12.2008 18:37:08

Обновление кэша должно производится Оперой, это предусмотрено в файле: function/no-cache.php

Как минимум один раз в сутки, за это отвечает строка: @Header("Last-Modified: ".gmdate("D, d M Y H:i:s", strtotime("-1 day"))." GMT");

Если этого не происходит, значит, проблема у браузера или на сервере.
С датой сервера всё в порядке?


О сколько нам открытий чудных, Готовит просвещенья дух, И опыт, сын ошибок трудных, И гений, парадоксов друг...

SLAED CMS
SLAED CMS
3.24

3.24

Открыть Ответить
Хотите опробовать SLAED CMS в действии?
Идеи и предложения
Обратная связь
Подтверждение

Поделиться
QR-код

Предварительный просмотр