Перенаправление старых ссылок JPG на новые файлы WebP через .htaccess

После изменения формата миниатюр в галерее с JPG на WebP возникла проблема: сторонние сайты, ссылающиеся на старые изображения, получают ошибки 404. Необходимо настроить автоматическое перенаправление запросов.

Решение через файл .htaccess

Поместите следующий код в файл .htaccess, расположенный в корневой директории вашего сайта или в папке assets/images/gallery/:

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/assets/images/gallery/([^/]+)/medium/([^/]+)\.jpg$
RewriteCond %{DOCUMENT_ROOT}/assets/images/gallery/%1/medium/%2.webp -f
RewriteRule ^(.+)\.jpg$ $1.webp [L,R=301]

Как это работает

  • Активация модуля: Директива RewriteEngine On включает механизм перезаписи URL.
  • Проверка пути: Первое условие RewriteCond определяет, соответствует ли запрос шаблону /assets/images/gallery/*/medium/*.jpg.
  • Проверка существования файла: Второе условие проверяет, существует ли соответствующий файл с расширением .webp на сервере.
  • Перенаправление: Если оба условия выполнены, правило RewriteRule выполняет 301 редирект с .jpg на .webp.

Альтернативные варианты

Если решение через .htaccess недоступно, рассмотрите следующие подходы:

  • PHP-скрипт: Создайте скрипт-обработчик для динамической конвертации запросов.
  • Настройка веб-сервера: Для Nginx используйте директиву rewrite в конфигурации сервера.
  • Резервные копии: Временно сохраните старые JPG-файлы или создайте символические ссылки для плавного перехода.

После внедрения решения проверьте работу редиректа через инструменты разработчика в браузере или онлайн-сервисы проверки HTTP-заголовков.