@ezrollers

Как с помощью cron менять главную страницу сайта? каждый день новый html файл их 365?

Как можно с помощью планировщика задач менять каждый день главную страницу сайта?
Есть на каждый день в году своя главная страница.
  • Вопрос задан
  • 80 просмотров
Пригласить эксперта
Ответы на вопрос 1
@rPman
мини ликбез
Есть два противоположных подхода к решению задачи, и выбор зависит от того, на сколько в принципе сложен сайт.

Есть в веб разработке понятие - статика. Исходит оно из того что отдавать не изменяющийся файл тупо быстрее/проще/эффективнее по ресурсам чем изменяющийся по какой то логике, и у веб серверов для этого есть отдельная настройка. Часть файлов веб сервера - статичны. И даже существуют веб сайты, которые полностью могут состоять из статичных файлов.

Это не значит что файлы нельзя менять, но само понятие работы веб клиентов подразумевает ожидание что файлы не меняются, а значит при изменении файла на сервере, клиент может продолжать видеть старую версию, причем разные клиенты увидят обновления - в разное время. Это называется - настройки кеширования, и даже для статики у веб серверов есть настройки на этот счет (правда уменьшая время жизни файла в кеше, уменьшается бонус от его статичности, ведь его будут чаще запрашивать).

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

Никто не мешает контент генерировать динамически и код стартовой страницы может выглядеть примерно так:
<?php include date('d-m').'.html'; ?>где нужные страницы по дням лежат в файлах к примеру с именем вида 21-11.html

можно попробовать совместить бонусы от статики, отдавая динамической страницей не саму страницу, а только редирект на ее статическое имя:
<?php header('Location: http://www.example.com/'.date('d-m').'.html');?>
тогда сразу в нужный момент времени при заходе на сайт будет автоматический редирект на нужную страницу, и при этом все будет быстро и красиво, но пользователям будет доступны страницы с предыдущих дней по их имени, и их придется как то скрывать, если это актуально (например средствами прав доступа или просто перемещая файлы в другой каталог отдельным скриптом, пусть и по крону)

ну и вариант с кроном, когда файл index.html ежесуточно заменяется копией, команда в крон может быть примерно такой:
cp /путь/до/исходных/файлов/`date +%m-%d`.html /путь/до/папки/веб/сервера/index.html
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы