0

我使用多站点 wordpress,昨天我从 http 更改为 https。起初我有很多关于更新 url 的问题。所以我研究并应用了一些方法,例如在 MySQL 上直接查询更改 https,设置 .htacess 如下:

RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]

还在 functions.php 上使用更新:

update_option('siteurl','https://www.//example.com');
update_option('home','https://www.example.com');

最后,所有链接都运行良好。

但我在 Netword 管理菜单遇到了一个问题

这是我的屏幕:

如何修复网络管理菜单以显示https://www。?

谢谢

4

1 回答 1

0

您的站点是 MultiSite。网络管理菜单是其中的一部分。

您应该使用update_site_options全局更新 URL

另外,请阅读以下关于如何完全从 HTTP 切换到 HTTPS 的说明

那里的一些亮点:

第一步是启用 SSL 进行管理。这在 Wordpress 中有很好的记录,只需将以下语句添加到您的 wp-config.php 中:

define('FORCE_SSL_ADMIN', true);

第二步是设置相关选项、设置和常量,以启用对隐私浏览的可选支持。

define('WP_SITE_URI',($_SERVER["HTTPS"]?"https://":"http://").$_SERVER["SERVER_NAME"]);
define('WP_SITEURI', ($_SERVER["HTTPS"]?"https://":"http://").$_SERVER["SERVER_NAME"]);

如果你愿意,你可以抽象出你的域。此示例假定您的博客位于顶级目录中。如果需要,请在末尾添加一个子目录。然后在包含“wp-settings”插入之前的某个地方:

define("WP_CONTENT_URL", WP_SITE_URI . "/wp-content");

然后在包含'wp-settings'之后添加:

wp_cache_set("siteurl_secure", "https://" . $_SERVER["SERVER_NAME"], "options");
wp_cache_set("home", WP_SITE_URI, "options");
wp_cache_set("siteurl", WP_SITE_URI, "options");

最后一个更改是作为插件实现的。

<?php
/* Plugin Name: Content over SSL
 * Description: Re-write content URIs to use the appropriate protocol
 * Author: Me
 * Version: .1
 */
 
add_filter('the_content', 'my_ssl');
 
function my_ssl($content) {
  if (isset($_SERVER["HTTPS"]))
    $content = ereg_replace("http://" . $_SERVER["SERVER_NAME"], "https://" . $_SERVER["SERVER_NAME"], $content);
  return $content;
}
?>
于 2015-06-16T12:48:49.427 回答