ALEXPTS
WEB DEVELOPER
PHP, NodeJS, JavaScript, etc.
Главная Приколы Стена
Cкилы: Web Php NodeJs Tests Storages

Подключение ресурсов в wordpress без указания протокола http/https

#Wordpress

Начал активно переводить все свои старые wordpress блоги на https. На одном из блогов, где использовалось кеширование страниц, поймал маленький, но очень неприятный баг.

Пользователь запрашивал страницу с http протокола и страница генерировала все пути на подключаемые стили и скрипты на http версию. В коде для генерации пути используется wordpress функция bloginfo('stylesheet_directory'), которая возвращает путь с указанием протокола. Если страница попадала в кеш с http запроса, то в кеше лежал вариант страницы http. Путь кеша не учитывал схему запроса и кеш для http и https был общим.

Для пользователей с https протоколом отдавалась страница из кеша, в которой пути к css/js были указаны на http версию. Браузер не загружал небезопасные ресурсы и сайт выглядел без css очень страшно.

Страницы для авторизованного пользователя загружаются мимо кеша, поэтому при проверке не удалось поймать проблему.

В итоге добавил небольшой обработчик, который подключается через фильтр stylesheet_directory_uri и убирает протокол запроса из пути подключаемого ресурса, если ресурс содержит требуемое расширение.