0

我有一个 wordpress 网站 www.domain.com,我们刚刚购买了 SSL 证书,但它只适用于 domain.com(没有 www)。我配置了 .htaccess 和站点 url

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 需要更多工作吗?

4

2 回答 2

0

除了手动编辑页面内的所有链接之外,有没有办法解决这个问题,因为这是一个大网站,我没有时间一个一个地编辑链接。

使用https://interconnectit.com/products/search-and-replace-for-wordpress-databases/使用该脚本,您可以有选择地扫描您的帖子/页面内容、选项表等,以查找要更改的 URL。此工具将正确反序列化/重新序列化主题选项、小部件选项等中的数据,因此您的主题设置不会中断。在 PHPMyAdmin 或 Adminer 中使用 SQL 查询会破坏序列化数据。

然后使用Firefox(或Firebug)或ChromeSafariIE中的开发人员工具来查看您网站上仍然不安全地加载的内容。

您可能必须更改硬编码的 URLfunctions.php和样式表。如果其中有一个绝对 URL,您可以更改httphttps或删除http:以使 URL 协议不可知,即更改http://example.com/jquery.js//example.com/jquery.js

于 2016-09-30T15:46:57.687 回答
-1

您需要在数据库中执行一些请求来更新所有存储的 url:

  • 在您的帖子内容中
  • 用于指南(页面/帖子/媒体/...的网址)

重要提示:在做类似的事情之前总是保存你的数据库(以防万一)。

这是我在这种情况下使用的请求:

# 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/

于 2016-09-30T15:00:07.137 回答