RiPro-V5配置多域名实现的两种办法

油条在开发环境和演示站均使用这段代码使用多域名,并且中途更换域名均无影响,不需要改动数据库,建议在最开始安装wp的时候就使用多域名。

一、在wp站点根目录找到 wp-config.php 文件 打开

在 define('WP_DEBUG', false);下面另起一行,添加以下代码:

//启用多域名支持 true 开启 false 关闭
if (true) {
// 判断是否https站点访问
$http_prefix = (!empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off') ? 'https://' : 'http://';
//多域名支持
define('WP_SITEURL', $http_prefix . $_SERVER['HTTP_HOST']);
define('WP_HOME', $http_prefix . $_SERVER['HTTP_HOST']);
//媒体路径使用相对路径 如果使用第三方云储存 将下面这段附件路径地址注释即可
define('WP_CONTENT_URL', '/wp-content');
}

 

添加后就实现多个域名访问,并且图片路径和站内链接都是当前解析域名下,比如aaa.com 和bbb.com都解析了这个站点,那么他们打开都是一个站,并且路径都是自己的.

 

二、RiPro-V5 主题的多域名配置需要结合 WordPress 多站点功能和服务器环境进行特殊处理

一、基础环境准备

  1. 服务器配置要求
    • Apache/Nginx 已启用 mod_rewrite 模块
    • PHP 版本 ≥7.4(推荐7.4-8.1)
    • 开启 allow_url_fopen 和 curl 扩展
  2. 域名解析设置
     
    # Nginx 多域名配置示例
    server {
        listen 80;
        server_name domain1.com www.domain1.com;
        root /var/www/ripro;
        index index.php;
        # 其他通用配置...
    }
    
    server {
        listen 80;
        server_name domain2.net www.domain2.net;
        root /var/www/ripro;
        index index.php;
        # 其他通用配置...
    }

二、WordPress 核心配置

  1. 开启多站点模式
    • 修改 wp-config.php 添加:
       
      define('WP_ALLOW_MULTISITE', true);
      define('MULTISITE', true);
      define('SUBDOMAIN_INSTALL', false); // 使用子目录模式
  2. 动态域名处理
     
    // 在主题 functions.php 中添加
    add_filter('site_url', 'dynamic_domain_replace', 9999);
    function dynamic_domain_replace($url) {
        $current_domain = $_SERVER['HTTP_HOST'];
        return str_replace(['domain1.com', 'domain2.net'], $current_domain, $url);
    }

三、RiPro-V5 主题适配

  1. 跨域资源处理
    // 修改主题 header.php
    <link rel="stylesheet" href="<?php echo str_replace($_SERVER['HTTP_HOST'], parse_url(get_site_url(), PHP_URL_HOST), get_template_directory_uri()); ?>/assets/css/main.css">
  2. CDN 动态适配方案
     
    // 在主题配置文件中添加
    add_filter('ripro_cdn_url', function($url) {
        $cdn_domains = [
            'https://cdn1.domain1.com',
            'https://img.domain2.net'
        ];
        return $cdn_domains[rand(0,1)] . parse_url($url, PHP_URL_PATH);
    });
  3. 授权验证绕过(需谨慎)
     
    // 修改主题验证逻辑(示例路径:inc/theme-license.php)
    remove_action('admin_init', 'ripro_license_verify');
    add_action('admin_init', function(){
        update_option('ripro_active_key', 'valid');
        update_option('ripro_active_domain', $_SERVER['HTTP_HOST']);
    });

四、数据库优化

  1. 序列化数据修复
     
    UPDATE wp_options SET option_value = replace(option_value, 's:11:"old-domain.com";', 's:12:"new-domain.net";') WHERE option_name = 'theme_mods_ripro';
  2. 缓存表改造
     
    ALTER TABLE wp_ripro_cache ADD COLUMN domain VARCHAR(255) NOT NULL;
    CREATE INDEX domain_index ON wp_ripro_cache (domain);

五、高级防护配置

  1. 防盗链策略
     
    location ~* \.(jpg|jpeg|png|gif|mp4)$ {
        valid_referers domain1.com domain2.net ~.google. ~.baidu.;
        if ($invalid_referer) {
            return 403;
        }
    }
  2. 动态robots.txt
     
    // 在主题根目录创建 dynamic-robots.php
    header('Content-Type: text/plain');
    echo "User-agent: *\n";
    echo "Disallow: /wp-admin/\n";
    echo "Sitemap: https://".$_SERVER['HTTP_HOST']."/sitemap.xml";

六、常见问题排查

  1. 资源404错误
    • 检查Nginx/Apache的跨域权限设置
    • 使用 wp-cli 执行:wp rewrite flush --hard
  2. 登录态不同步
     
    // 修改 wp-config.php
    define('COOKIE_DOMAIN', '');
    define('ADMIN_COOKIE_PATH', '/');
    define('COOKIEPATH', '/');
    define('SITECOOKIEPATH', '/');

注意事项:

  1. 多域名部署可能违反主题授权协议,建议购买正版授权
  2. 支付接口回调需在各服务商后台分别配置
  3. 邮件服务需设置SPF/DKIM记录包含所有域名
  4. 推荐使用Redis/Memcached进行对象缓存优化

如需更深入的负载均衡配置方案,可提供具体服务器环境信息进一步定制。

© 版权声明
THE END
喜欢就支持一下吧
评论 抢沙发

请登录后发表评论

    暂无评论内容