如何强制(子域)多站点使用 https 创建新的子站点?

How do I force (subdomain) multisite to create new subsites with https?

有谁知道如何在创建新子站点时强制子域多站点保留 URL 架构(特别是 https)?

默认情况下,它会使用 "siteurl" 和 "home" 选项 url 和 "http://".

创建子站点

ms-functions.php 中有几行明确告诉子站点 NOT 使用架构,所以我想知道最好的更改方法是什么修改源。谢谢!

执行此操作的典型方法是将如下内容添加到安装的 .htaccess 文件中:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

或者使用 "Force SSL" 类型的插件之一并通过网络激活它。

就个人而言,我是 Really Simple SSL 的粉丝。

如果您使用域映射等插件,您也可以在其中指定 HTTPS。

我们使用 Multisite Clone Duplicator plugin,我能够在克隆过程中编写一个挂钩到插件的函数,避免接触核心代码。

if ( ! function_exists( 'mucd_after_copy_data' ) ) {
function force_https($from_site_id, $to_site_id) {
        $site_url = get_site_url($to_site_id);
        $https_site_url = str_replace( 'http://', 'https://', $site_url );
        update_blog_option( $to_site_id, 'siteurl', $https_site_url );
        update_blog_option( $to_site_id, 'home', $https_site_url );
    }
    add_action('mucd_after_copy_data', 'force_https', 10, 2 );
}