HandyCache форум

Главная категория => Новые предложения => Тема начата: Сергей от 12 января 2007, 15:49:48



Название: Прямые ссылки на индексные файлы.
Отправлено: Сергей от 12 января 2007, 15:49:48
Давно предлагал, но не помню, чтобы вносил в TODO.

В списке Только из кэша добавить опцию Индексный файл
с текстовым полем (index|default)\.((s)?htm(l)?|php|asp)$
Если сработал список или мы в автономном режиме, то проверить URL на соответствие этому правилу.
Если правило сработало то заменить совпадение на пустую строку.
Это решит проблему, когда в автономном режиме не работают ссылки на главные страницы сайтов.


Название: Re: Прямые ссылки на индексные файлы.
Отправлено: DenZzz от 12 января 2007, 17:33:07
Сергей

Цитировать
В списке Только из кэша добавить опцию Индексный файл


Почему именно в списке "Только из кэша"?

Цитировать
Если правило сработало то заменить совпадение на пустую строку.


А если нет такого файла в кэше, но зато есть файл под полным URL?
А если в кэше лежит несколько файлов: и #_ , и index.php и т.д.  разной свежести, причем index.php свежий, а #_ старье? Какой грузить?


P.S. Лично я для себя эту проблему уже давно решил правилом в списке "Преобразование URL":

#5#~#True#~#(?<=/)(index|default)\.(s?html?|php|asp)$#~##~#False#~#True

Ничего страшного, что все они пишутся в кэш под одним именем #_ . Вероятность, что на сайте есть обе эти страницы и они разные, низка! Да и отдельная опция "Индексный файл" от этого не спасет!

Пока проблем с этим правилом не встречал! :)


Название: Re: Прямые ссылки на индексные файлы.
Отправлено: Сергей от 12 января 2007, 17:59:28
Эту фичу мы уже давно обсудили с mai62 и он одобрил. Я сейчас немного конкретизировал.
Цитировать
Почему именно в списке "Только из кэша"?
Потому, что это нужно в автономном режиме или при срабатывании этого списка.

Цитировать
А если нет такого файла в кэше, но зато есть файл под полным URL?

Ничего не понял. Что значит полный URL?

Цитировать
А если в кэше лежит несколько файлов: и #_ , и index.php и т.д.  разной свежести, причем index.php свежий, а #_ старье? Какой грузить?
#_ конечно

Цитировать
Ничего страшного, что все они пишутся в кэш под одним именем #_ . Вероятность, что на сайте есть обе эти страницы и они разные, низка!
А мне это критично. Хочу чтобы сохранялось все и под правильным именем.

Цитировать
Да и отдельная опция "Индексный файл" от этого не спасет!
От чего? От того, что разные файлы пишутся в один. А мне это и не нужно.
Опция совсем для других целей нужна.


Название: Re: Прямые ссылки на индексные файлы.
Отправлено: mai62 от 12 января 2007, 18:07:57
Сергей
Цитировать
Эту фичу мы уже давно обсудили с mai62 и он одобрил
Дай ссылку. Я помню, что речь об этом была, но подробностей не помню.


Название: Re: Прямые ссылки на индексные файлы.
Отправлено: Сергей от 12 января 2007, 18:14:33
Дай ссылку. Я помню, что речь об этом была, но подробностей не помню.
Я все подробности изложил в первом посте. Руборд похоже в дауне, точные ссылки пока найти не могу.


Название: Re: Прямые ссылки на индексные файлы.
Отправлено: NothingAnother от 12 января 2007, 18:17:25
Руборд похоже в дауне, точные ссылки пока найти не могу
Руборд в тонусе! :P


Название: Re: Прямые ссылки на индексные файлы.
Отправлено: DenZzz от 12 января 2007, 21:15:03
Сергей

Цитировать
Цитировать
А если нет такого файла в кэше, но зато есть файл под полным URL?

Ничего не понял. Что значит полный URL?
Например, запрос пришел на default.htm, в кэше лежит index.php, а файла #_ нет в кэше!
Как будет работать предлагаемая тобой опция?

Цитировать
Цитировать
А если в кэше лежит несколько файлов: и #_ , и index.php и т.д.  разной свежести, причем index.php свежий, а #_ старье? Какой грузить?
#_ конечно
Хм! Пришел запрос на index.php, он есть в кэше, а грузить будем старый #_ ?! Оригинально... ;)

Тогда уж, лучше пусть твоя опция срабатывает только в том случае, если в кэше нет изначально запрашиваемого URL !
Но и это не спасет в том случае, если файла #_ нет в кэше, но зато есть некоторые из: index.php, default.htm и т.д.


Название: Re: Прямые ссылки на индексные файлы.
Отправлено: Сергей от 13 января 2007, 10:55:30
Сорри. Забыл написать, что опция должна срабатывать только когда файл не найден в кэше, разумеется!


Название: Re: Прямые ссылки на индексные файлы.
Отправлено: DenZzz от 13 января 2007, 12:08:07
Сергей

А как же быть в случае: например, запрос пришел на default.htm, в кэше лежит index.php, а файла #_ нет в кэше!?

Как будет работать предлагаемая тобой опция? Никак! Файл загружен не будет!

Может, при отсутствии запрашиваемого файла, попадающего под правило: (index|default)\.((s)?htm(l)?|php|asp)$ , искать в папке сайта в кэше файл #_, а если его нет, то другой файл, попадающий под это правило?


Название: Re: Прямые ссылки на индексные файлы.
Отправлено: Сергей от 13 января 2007, 12:19:38
А как же быть в случае: например, запрос пришел на default.htm, в кэше лежит index.php, а файла #_ нет в кэше!?
А никак. Как и сейчас. Пусть не находит.

Цитировать
Может, при отсутствии запрашиваемого файла, попадающего под правило: (index|default)\.((s)?htm(l)?|php|asp)$ , искать в папке сайта в кэше файл #_, а если его нет, то другой файл, попадающий под это правило?
Это лишнее. Только замедлит работу.

Ради чего все это затевалось?
Если в первый раз на сайт мы заходим по ссылке http://site.ru
то хотелось бы, чтобы  в автономном режиме потом работали ссылки на главную страницу.
Файл #_ будет существовать по определению.


Название: Re: Прямые ссылки на индексные файлы.
Отправлено: DenZzz от 13 января 2007, 12:58:55
Сергей

Цитировать
Это лишнее. Только замедлит работу.

Не сильно!
  • Исходный URL сначала ищется в кэше.
  • Если его нет, то проверяется на соответствие правилу: (index|default)\.((s)?htm(l)?|php|asp)$ и ищется файл #_ в корне сайта в кэше.
  • Если и его нет, то ищем подходящий файл всего в 1 корневой папке сайта в кэше, которая, как правило, не большая!

Цитировать
Если в первый раз на сайт мы заходим по ссылке http://site.ru

Если в первый раз ты зашел по ссылке на http://site.ru/index.php с другого сайта, то в автономке ты уже не зайдешь на http://site.ru ! Я предлагаю это заранее учесть... ;)


Название: Re: Прямые ссылки на индексные файлы.
Отправлено: Сергей от 13 января 2007, 13:11:51
DenZzz
Ладно, я согласен :)
Можешь сформулировать окончательный алгоритм?


Название: Re: Прямые ссылки на индексные файлы.
Отправлено: DenZzz от 13 января 2007, 13:31:56
Сергей

Собственно, уже:  :)

Алгоритм работы опции "Индексные файлы":

  • 1. Исходный URL сначала ищется в кэше. Нашли - отдали браузеру.
  • 2. Если файл не найден в кэше, но включен автономный режим или сработал список "Только из кэша", то URL проверяется на соответствие правилу: (index|default)\.((s)?htm(l)?|php|asp)$ . Иначе, переход к п.5.
  • 3. Если это правило сработало, то ищется файл #_ в корне сайта в кэше. Нашли - отдали браузеру. Если правило не сработало - переход к п.5.
  • 4. Если файл #_ не нашли в кэше, то ищем первый подходящий под то же правило из п.2 файл всего в 1 корневой папке сайта в кэше, которая, как правило, небольшая! Нашли - отдали браузеру.
  • 5. Если опять не нашли файл - ответили браузеру 404.


Название: Re: Прямые ссылки на индексные файлы.
Отправлено: Сергей от 13 января 2007, 14:44:39
ты забыл пункт
1a. Если URL не подпадает под действие списка Только из кэша или выключен автономный режим, то переходим к пункту 5


Название: Re: Прямые ссылки на индексные файлы.
Отправлено: DenZzz от 13 января 2007, 15:02:42
Сергей

Это подразумевалось, т.к. проверка правила в п.2 возможна только в этом случае!
Ладно, сейчас поправлю...