关于多域名绑定引发的跳转与500错误问题,建议按以下步骤排查处理:
一、域名强制跳转问题排查
1. 主域名强制配置检查
打开config/config_global.php文件,确认以下参数:
$_config['cookie']['cookiedomain'] = '.123.cn'; // 注意前面的点号
$_config['security']['domain']['portal'] = array('*.123.cn','*.124.cn');
$_config['security']['domain']['default'] = array('*.123.cn','*.124.cn');
2. UCenter通信配置验证
登录UCenter后台→应用管理→检查每个应用的"应用的URL"是否完整填写对应域名,特别注意:
- 主应用URL需包含http://协议头
- 通信密钥需所有应用一致
- IP地址栏留空
二、500错误排查方案
1. 查看服务器日志
定位具体错误文件路径:
- Nginx:/var/log/nginx/error.log
- Apache:/var/log/apache2/error.log
查找对应时间点的[error]记录
2. 目录权限修正(推荐权限方案)
执行命令:
cd /网站根目录
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
chmod -R 777 data/ config/ uc_server/data/ uc_client/data/
3. PHP扩展冲突检测
临时创建phpinfo.php文件测试:
<?php phpinfo();
访问对应域名下的phpinfo.php,确认以下扩展正常加载:
- zlib
- gd
- curl
- openssl
- mbstring
三、多域名服务器配置要点(以Nginx为例)
server {
listen 80;
server_name a1.124.cn;
root /wwwroot/discuz; # 必须与主域名目录完全一致
location / {
try_files $uri $uri/ /index.php?$args;
}
# 特别添加禁止跨域重定向规则
if ($http_host != "a1.124.cn") {
return 403;
}
# 独立错误日志
error_log /var/log/nginx/a1.124.cn.error.log;
}
四、Discuz核心参数优化
1. 关闭域名自动识别
修改config/config_global.php:
$_config['admincp']['checkip'] = 0;
$_config['security']['urlxssdefend'] = 0;
2. 缓存策略调整
修改config/config_global.php:
$_config['memory']['prefix'] = 'dz_'.substr(md5($_SERVER['HTTP_HOST']), 0, 6).'_';
五、数据库连接验证
检查每个域名对应的config/config_global.php中:
$_config['db']['1']['dbhost'] = 'localhost';
$_config['db']['1']['dbuser'] = '统一用户名';
$_config['db']['1']['dbpw'] = '统一密码';
确保所有域名配置文件中的数据库配置完全一致
建议先通过临时关闭伪静态(后台→全局→SEO设置→关闭所有rewrite)来排查是否是伪静态规则冲突导致500错误。若问题仍未解决,建议提供具体的错误日志片段以便进一步分析。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。 |