Подмена ссылок с http на https в Wordpress
Рассмотрим способ подмены ссылок сайта с протоколом http на https в «Wordpress» без плагинов и правок базы данных. Замена будет происходить на лету в сгенерированном содержимом страницы. Такой подход нельзя считать 100% правильным, но он прост в реализации и в некоторых случаях может успешно применяться.
Следующий код нужно добавить в файл «functions.php» текущей темы.
ob_start();
function shutdown_func() {
$final = '';
$levels = ob_get_level();
for ($i = 0; $i < $levels; $i++) { $final .= ob_get_clean(); }
echo apply_filters('final_output', $final);
}
add_action('shutdown', 'shutdown_func', 0);
function replace_func($sContent) {
$sContent = str_replace('http://'.$_SERVER['HTTP_HOST'], 'https://'.$_SERVER['HTTP_HOST'], $sContent);
return $sContent;
}
add_filter('final_output', 'replace_func');
Здесь происходит перехват содержимого страницы перед тем, как отдать её посетителю. В этот момент можно заменить все адреса сайта с http на https. В панели администрирования всё останется без изменений.
Преимущества способа:
- простая реализация;
- легко откатить в случае проблем;
- не требует ручной замены.
Не рекомендуется применять на сайтах с высокой посещаемостью (более 1000 посетителей в сутки).
Панель администрирования «Wordpress» на https
Для корректной работы панели администрирования «Wordpress» по защищенному протоколу не забудьте в настройках вручную поменять адреса.
Если после замены наблюдаются проблемы в работе панели, то исключите подмену ссылок для «админки». Для этого предыдущий код оберните в констуркцию:
if (!is_admin()) {
// содержимое предыдущего кода
}
И не забудьте поставить 301 перенаправление с обычных адресов страниц на их версию с защищенным протоколом. Делается это в конфигурационном файле «.htaccess», который расположен в корневом каталоге сайта.
SetEnv HTTPS "on"
SetEnv HTTP_X_FORWARDED_PROTO "https"
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Почему инфобизнес это развод на деньги