有没有人知道在创建新的子网站时如何强制子域多站点保留URL架构(特别是https)?
默认情况下,它使用“http://”创建带有“siteurl”和“home”选项网址的子网站。
ms-functions.php中有几行明确告诉子网站 NOT 使用架构,所以我想知道在没有修改源的情况下改变它的最佳方法是什么。谢谢!
答案 0 :(得分:0)
执行此操作的典型方法是在安装的.htaccess
文件中添加以下内容:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
或使用其中一种“强制SSL”类型插件和网络激活它。
就个人而言,我是 Really Simple SSL 的粉丝。
如果你正在使用像域映射这样的插件,你也可以在其中指定HTTPS。
答案 1 :(得分:0)
我们使用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 );
}