我有一个wordpress网站www.domain.com,我们刚刚购买了SSL证书,但它只在domain.com上工作(没有www)。我已经配置了.htaccess和网站网址
RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain.com [NC]
RewriteRule ^(.*)$ https://domain.com/$1 [L,R=301,NC]
这可行但我的wordpress网站的页面仍然在我的网站上有链接(例如图片www.domain.com/uploads/images/01.jpg),这会引起用户的警告,因为它不是完成https。有没有办法解决这个问题,除了手动编辑页面内的所有链接,因为这是一个很大的网站,我没有时间逐个编辑链接。有插件吗?我也对使用插件犹豫不决,但如果有一个可用的插件,我可以尝试一下。
我读到了301重定向,但我认为它不会起作用,因为链接保存在数据库中? (我真的不确定)如果301重定向工作有什么不利/优势呢?例如。内存问题,更多的CPU工作?
答案 0 :(得分:0)
有没有办法解决这个问题,而不是手动编辑所有 页面内的链接,因为这是一个大网站,我没有 是时候一个一个地编辑链接。
使用https://interconnectit.com/products/search-and-replace-for-wordpress-databases/使用该脚本,您可以有选择地扫描您的帖子/页面内容,选项表等,以便更改URL。此工具将正确地反序列化/重新序列化主题选项,窗口小部件选项等中的数据,因此您的主题设置不会中断。在PHPMyAdmin或Adminer中使用SQL查询将破坏序列化数据。
然后使用Firefox(或Firebug)或Chrome或Safari或IE中的开发者工具查看仍未安全加载的内容你的网站。
您可能需要更改functions.php
和样式表中的硬编码网址。如果其中包含绝对网址,您可以将http
更改为https
,或删除http:
以使网址协议无关,即将http://example.com/jquery.js
更改为{ {1}}
答案 1 :(得分:-1)
您需要在数据库中执行一些请求以更新存储的所有网址:
重要提示:在执行此类操作之前,请务必保存您的数据库(以防万一)。
以下是我在这种情况下使用的请求:
# change the default prefix "wp_" by your actual prefix.
# update site url in "wp_options" table
UPDATE `wp_options`
SET option_value = REPLACE(option_value, 'http://www.oldurl', 'http://www.newurl')
WHERE option_name = 'home'
OR option_name = 'siteurl';
# update "guid" in "wp_posts" table
UPDATE `wp_posts`
SET guid = REPLACE(guid, 'http://www.oldurl','http://www.newurl');
# update "post_content" in "wp_posts" table
UPDATE `wp_posts`
SET post_content = REPLACE(post_content, 'http://www.oldurl', 'http://www.newurl');
# Update "meta_value" in "wp_postmeta"
UPDATE `wp_postmeta`
SET meta_value = REPLACE(meta_value,'http://www.oldurl','http://www.newurl');
您只需使用适当的值自定义这些请求,然后通过PHPMyAdmin执行这些请求。
请求的原始来源:https://wpbeaches.com/updating-wordpress-mysql-database-after-moving-to-a-new-url/