在PHPCMS(以V9系列为例)中,添加主域名的核心逻辑是确保系统生成的链接、资源路径以及后台配置均以该域名作为站点根地址。以下是经过验证的专业操作流程,涵盖后台配置、文件修改与服务器环境三个层面,请按顺序执行并清除缓存。

第一步,登录PHPCMS后台,依次进入“设置” → “站点管理” → 找到当前需要绑定主域名的站点,点击“修改”。在“站点域名”一栏中,务必填写完整的域名,格式为https://www.example.com(注意不带末尾斜杠)。如果站点有多个域名,可将主域名填写在此处,其他域名建议通过301重定向指向该主域名,以避免权重分散。保存后,系统会更新缓存中的站点配置。
第二步,编辑PHPCMS程序目录下的配置文件,主要涉及/caches/configs/system.php。打开该文件,找到以下关键数组项:‘site_url’(完整站点URL)和‘domain’(站点主域名)。将两者的值分别修改为你的主域名地址,例如‘site_url’ => ‘https://www.example.com/’(结尾保留单斜杠),‘domain’ => ‘www.example.com’。同时确认‘html_root’为空字符串或符合当前目录结构,避免生成错误的静态路径。修改后保存文件,并确保文件权限允许PHP读取。
第三步,检查PHPCMS的“生成静态”功能。如果站点启用了静态页生成,还需要在后台“内容” → “附件设置”中更新附件访问地址为新的主域名。因为PHPCMS默认会根据配置文件生成内容页、列表页的绝对链接,若附件地址仍为旧域名,会导致资源加载失败。建议同步检查“模板”中的硬编码域名,使用< b>全局变量(如< b>{$site_url})替换,确保动态与静态页面一致性。
第四步,处理服务器环境(Nginx/Apache)。在Web服务器中,确保主域名已正确解析到PHPCMS所在目录,并配置虚拟主机。对于Nginx,需在server_name中同时设置主域名和辅助域名,并添加一个rewrite规则将非主域名请求301跳转至主域名,例如:if ($host != ‘www.example.com’) { return 301 https://www.example.com$request_uri; }。对于Apache,则通过.htaccess中的mod_rewrite实现同样效果。此步骤避免了因不同域名访问导致的Session跨域或Cookie失效问题。
第五步,缓存清理与验证。完成以上操作后,必须进入后台“设置” → “缓存管理”,点击“更新缓存”,包括“数据缓存”和“模板缓存”。同时删除/caches/template目录下的编译文件,以及/caches/static中的旧站点缓存。随后访问主域名,查看页面底部的Powered by PHPCMS链接、文章URL、栏目URL是否均以新主域名开头。若仍有旧域名残留,请检查数据库v9_site表中的domain字段,使用SQL命令UPDATE v9_site SET domain=‘www.example.com’ WHERE siteid=1;进行修正(需注意数据库前缀)。
第六步,针对多站点或子目录安装的特殊情况:如果PHPCMS安装在子目录中,则主域名必须配合‘site_dir’参数使用。此时主域名指的是该子目录对应的独立域名,需在“站点管理”中为该站点单独设置域名,并确保server_name只指向该域名。同时,系统根目录下的index.php会通过常量PHPCMS_PATH动态识别路径,无需修改,但需将.htaccess或nginx规则中的重写路径调整为子目录前缀。
最后需要特别注意的是,PHPCMS中的“主域名”并不仅仅是后台一个字段,它涉及全站URL生成机制、资源加载路径以及安全Cookie作用域。若更换域名后仅修改一处,常出现“后台能打开但前台链接404”或“图片CSS丢失”的故障。此时建议先恢复备份,按照上述顺序重新操作,并利用浏览器开发者工具查看控制台报错,定位是重定向循环(通常是server_name冲突)还是混合内容(HTTPS与HTTP资源混用)。确保主域名配置完成后,再批量更新历史文章中的旧域名链接(可通过数据库替换或后台SQL执行)。

查看详情

查看详情