01.09.2018
Обновлено: 30 сент. 2018 г., 17:20

Версионирование сайта через .htaccess

Небольшая заметка о том, как на Apache сервере организовать версионирование статического сайта с помощью .htaccess файла.

Реализация версионирования статического сайта через .htaccess может заинтересовать тех, кто пользуется услугами хостинга. Возможностей конфигурации сервера там немного и это одна из них.

Заключается она в следующем:

  1. В корень сайта кладем папку с названием версии, например 1.2.0;
  2. Также, в корень сайта кладем файл .htaccess, со следующими директивами:
    RewriteCond %{REQUEST_URI} !^/1.2.0/
    RewriteRule ^(.*)$ /1.2.0/$1 [L]

Теперь Apache сервер будет перенаправлять все запросы без номера версии в указанную папку, то есть 1.2.0.

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

Нюансы:
  • У всех страниц будет дублирующийся урл: /some/page/url и /1.2.0/some/page/url. Для поисковых систем нужно на всех страницах указывать "каноническую страницу":
    <link rel="canonical" href="https://vadimfedorov.ru/some/page/url/" />
  • Если у вас есть доступ к серверу, вероятно такого рода версионирование проще организовать через "симлинки". Поднял тему на Stack Overflow.
Иллюстрации:
В корень сайта кладем папку с названием версии, например 1.2.0
В корень сайта кладем папку с названием версии, например 1.2.0
Также, в корень сайта кладем файл .htaccess, со следующими директивами
Также, в корень сайта кладем файл .htaccess, со следующими директивами