Reputation: 187
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?
If there is mySQL or htaccess script, I am more interested in those solutions.
Upvotes: 5
Views: 15381
Reputation: 2930
You can try this free Wordpress plugin: https://wordpress.org/plugins/better-search-replace/
Also checkout this article for other ways: https://kinsta.com/knowledgebase/wordpress-search-and-replace/
Note that you should NOT replace GUIDs according to https://wordpress.org/support/article/changing-the-site-url/#important-guid-note:
the second part of that is that the GUID must never change. Even if you shift domains around, the post is still the same post, even in a new location. Feed readers being shifted to your new feeds when you change URLs should still know that they’ve read some of your posts before, and thus the GUID must remain unchanged.
Upvotes: 0
Reputation: 7614
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');
Upvotes: 7
Reputation: 1980
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.
Upvotes: 3