油条在开发环境和演示站均使用这段代码使用多域名,并且中途更换域名均无影响,不需要改动数据库,建议在最开始安装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 多站点功能和服务器环境进行特殊处理
一、基础环境准备
- 服务器配置要求
- Apache/Nginx 已启用
mod_rewrite
模块 - PHP 版本 ≥7.4(推荐7.4-8.1)
- 开启
allow_url_fopen
和curl
扩展
- Apache/Nginx 已启用
- 域名解析设置
# 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 核心配置
- 开启多站点模式
- 修改
wp-config.php
添加:define('WP_ALLOW_MULTISITE', true); define('MULTISITE', true); define('SUBDOMAIN_INSTALL', false); // 使用子目录模式
- 修改
- 动态域名处理
// 在主题 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 主题适配
- 跨域资源处理
// 修改主题 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">
- 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); });
- 授权验证绕过(需谨慎)
// 修改主题验证逻辑(示例路径: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']); });
四、数据库优化
- 序列化数据修复
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';
- 缓存表改造
ALTER TABLE wp_ripro_cache ADD COLUMN domain VARCHAR(255) NOT NULL; CREATE INDEX domain_index ON wp_ripro_cache (domain);
五、高级防护配置
- 防盗链策略
location ~* \.(jpg|jpeg|png|gif|mp4)$ { valid_referers domain1.com domain2.net ~.google. ~.baidu.; if ($invalid_referer) { return 403; } }
- 动态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";
六、常见问题排查
- 资源404错误
- 检查Nginx/Apache的跨域权限设置
- 使用
wp-cli
执行:wp rewrite flush --hard
- 登录态不同步
// 修改 wp-config.php define('COOKIE_DOMAIN', ''); define('ADMIN_COOKIE_PATH', '/'); define('COOKIEPATH', '/'); define('SITECOOKIEPATH', '/');
注意事项:
- 多域名部署可能违反主题授权协议,建议购买正版授权
- 支付接口回调需在各服务商后台分别配置
- 邮件服务需设置SPF/DKIM记录包含所有域名
- 推荐使用Redis/Memcached进行对象缓存优化
如需更深入的负载均衡配置方案,可提供具体服务器环境信息进一步定制。
© 版权声明
THE END
暂无评论内容