Во-первых, я объясню процедуру без использования файла .htaccess: Если предположить, что у вас есть ваш WordPress сайт на месте сказать «http://example.com»
- Установите сертификат SSL (следуйте инструкциям, предоставленным вам эмитентом)
- Перейти в вашу базу данных; таблицу wp_options и изменить Значение опции «siteurl» и «home» для начала с https вместо http и offcourse сохранить изменения.
- Войдите в свою панель администратора WordPress и перейдите на . Настройки »Общие сведения. Нажмите «Сохранить параметры». Это гарантирует, что URL-адрес сайта будет исправлен где-нибудь еще, что должно быть.
Затем перейдите по ссылке . НастройкиСсылка на номер и нажмите «Сохранить», чтобы убедиться, что все почтовые ссылки работают нормально.
Установите этот плагин Search & Replace и активируйте его. Этот плагин должен помочь в исправлении изображений и неработающих ссылок путем обновления путей без необходимости писать код; это довольно понятно.
- Установите этот плагин Easy HTTPS Redirection и активируйте его. Этот плагин перенаправляет весь трафик с http на https независимо от того, что; вы также можете определить страницы, которые вы не хотите принуждать к https.
И да, я согласен с вами в том, что плагин WP Force SSL делает чудеса на веб-сайте, я пробовал его, и я не усложняю урок, но все же попробую. На этом этапе у вас будет ваш «https://example.com», который отлично работает
Во-вторых, я объясню, как выполнять ту же процедуру без использования какого-либо плагина. Мое предположение такое же, как и выше.
- Повторите шаги 1 и 2 выше.
Не оставляйте свою базу данных, нам нужно выполнить поиск и заменить в MySQL с помощью SQL Query.Я перечислил лишь некоторые из вещей, необходимо заменить в запросе SQL ниже
UPDATE wp_posts
SET guid = replace(guid, 'http://example.com', 'https://example.com');
UPDATE wp_posts
SET post_content = replace(post_content, 'http://example.com', 'https://example.com');
UPDATE wp_postmeta
SET meta_value = replace(meta_value,'http://example.com', 'https://example.com');
NB: В зависимости от таблиц у вас есть, его всегда хорошо, чтобы сделать поиск и замену в таблице
Для перенаправления с http на https мы будем использовать файл .htaccess
. Попробуйте выполнить следующие действия с mod_rewrite в вашем .htaccess
файле
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
или любой из различных подходов, приведенных в
http://www.askapache.com/htaccess/http-https-rewriterule-redirect.html
Вы также можете решить эту проблему изнутри PHP в случае, если ваш провайдер отключил .htaccess
(что маловероятно, поскольку вы просили об этом, но в любом случае)
if (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] !== 'on') {
if(!headers_sent()) {
header("Status: 301 Moved Permanently");
header(sprintf(
'Location: https://%s%s',
$_SERVER['HTTP_HOST'],
$_SERVER['REQUEST_URI']
));
exit();
}
}
До этого момента оба метода https должны работать хорошо.
Затем, чтобы перенаправить не-WWW на WWW, используйте следующий код непосредственно ниже RewriteEngine On в файле .htaccess:
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
Для WWW к не-WWW, используйте:
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
Если вы находитесь на сервере Windows IIS, приведенный выше код не будет работать для вас. Я могу поделиться процедурой, если это необходимо.
Отличный ответ и спасибо !. Я отметил, что принят. Один вопрос. Последняя часть, где вы делаете WWW для не www, также может быть выполнена через cpanel большинства хостов с 301 переадресацией, правильно? То же самое. –
Да, это можно сделать. Его более интересно использовать его, если вы используете выделенный сервер; что означает твоего царя всего. Но все же я видел это в нескольких хостах – SamWanekeya