# Добавление поддержки HTTPS в Wordpress

Источник: https://blog.xsk.in/it/dobavlenie-podderzhki-https-v-wordpress/810/
Опубликовано: 2015-11-23 · Рубрики: IT


[Ходят слухи](https://googleonlinesecurity.blogspot.co.il/2014/08/https-as-ranking-signal_6.html), что гугл поднимает сайты с поддержкой HTTPS повыше в поисковой выдаче. Кроме того, добавление SSL сертификата повысит безопасность сайта в целом. Тем более, что помимо [StartSSL](https://www.startssl.com/) и [WoSign](https://buy.wosign.com/free/) бесплатные сертификаты совсем скоро начнет выдавать [Let's Encrypt](https://letsencrypt.org/).

Wordpress по умолчанию хранит все ссылки с добавлением протокола, поэтому для полноценной поддержки необходимо внести изменения в базу данных. При этом следует учесть, что чтобы не сломать HTTP, можно перейти на относительные ссылки внутри сайта вместо абсолютных. Для этого в консоли mysql делаем для БД блога замену в таблице wp\_posts (если используются плагины подмены имен таблиц, название нужно заменить на своё корректное):

```
mysql> use wordpress;
mysql> UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://DOMAIN.COM/', '/');
```

Здесь и далее *DOMAIN.COM* нужно заменить на адрес сайта, где расположен Wordpress. В основных настройках админки блога есть возможность указать базовую ссылку. Она тоже должна быть в формате с протоколом. Как быть, если требуется поддержка обоих? Идём в ***wp-config.php*** и городим там велосипед:

```
function isSecure() {
    return
        (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off')
        || $_SERVER['SERVER_PORT'] == 443;
    }

$web_site_url = 'DOMAIN.COM';

if (isSecure())
{
     define('WP_HOME',   'https://' . $web_site_url);
     define('WP_SITEURL','https://' . $web_site_url);
}
else
{
     define('WP_HOME',   'http://' . $web_site_url);
     define('WP_SITEURL','http://' . $web_site_url);
}
```

По желанию добавляем обязательное использование HTTPS при логине и/или пользовании админкой:

```
define( 'FORCE_SSL_LOGIN', true );
define( 'FORCE_SSL_ADMIN', true );
```

*Ссылки:*

- [Make a WordPress site work on both HTTP & HTTPS](http://blog.rabin.io/sysadmin/make-wordpress-site-work-both-http-https)

