Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Replace HTTP:// to HTTPS:// in WordPress

With Google getting picky about HTTPS on sites, I was hoping to be able to do a quick and easy SQL Query to search & replace anything http:// with https://

I normally do something like the below for moving hosts:

UPDATE wp_posts SET guid = replace(guid, 'http://www.oldurl','http://www.newurl');

So I tried to do something like

UPDATE `wp_commentmeta` SET 'meta_value' = REPLACE(`meta_value`, 'http://', 'https://');

But it didn't seem to work. Anyway to do the ENTIRE database at once?


  • I have tried a few options on S.O.F., but nothing worked well.
  • I prefer not to have to install a plugin as a "fix"

If there is mySQL or htaccess script, I am more interested in those solutions.

like image 245
Niles Avatar asked Dec 17 '22 22:12

Niles


2 Answers

If you have access to edit your .htaccess file, you can add the following into it:

RewriteEngine on

# force SSL
RewriteCond     %{SERVER_PORT} ^80$
RewriteRule     ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]

The code above will redirect with 301 (permanent), if don't want to use a 301 redirect, you can simply change the last section on the last line from [L,R=301] to [L,R].

If you want to be a little more thorough with your SQL replacement, you can usually find all the necessary links inside the posts table inside the guid column (featured images) and the post_content column (backlinks etc). And then ofcourse also inside the post_meta table - meta_value column and home/siteurl inside your options table. Here is the SQL Query that I normally use:

UPDATE wp_options SET option_value = replace(option_value, 'http://example.com', 'https://example.com') WHERE option_name = 'home' OR option_name = 'siteurl';
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');
like image 104
Frits Avatar answered Jan 04 '23 17:01

Frits


You can either try WP CLI or the Search Replace DB from Interconnect/it.

If you use the later, you can delete folder after replacing the URL.

like image 27
Dale Nguyen Avatar answered Jan 04 '23 16:01

Dale Nguyen