WordPress单站点绑定多个域名访问,实现静态资源的一致

在本教程中,我们将介绍如何修改 WordPress 配置文件 wp-config.php 来实现 WordPress 网站的多域名访问,并防止恶意域名解析。此外,我们还将讨论如何处理静态资源文件的访问路径。

第一步:修改 wp-config.php 文件以禁用域名检查

在 WordPress 根目录下找到并编辑 wp-config.php 文件。在 <?php 标签后的第三行插入以下代码:

define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']);
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);

WordPress单站点绑定多个域名访问,实现静态资源的一致

作用:

  • 以上代码通过动态获取当前访问的域名并定义 WP_SITEURLWP_HOME,确保网站在访问不同域名时不会进行 301 重定向。
  • 无论解析哪个域名,只要 DNS 正确指向服务器,都可以访问同一 WordPress 网站。

第二步:设置固定的域名解析(推荐这个配置)

为了防止他人恶意解析域名到你的网站,你可以设置允许访问的特定域名。只允许特定域名解析并访问站点,其他域名无法访问。

wp-config.php 中,添加以下代码:

$domain = array("www.a.com", "www.b.com", "www.c.com");
if(in_array($_SERVER['HTTP_HOST'], $domain)){
    define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']);
    define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);
} else {
    header('HTTP/1.0 403 Forbidden');
    exit('Access denied.');
}

作用:

  • 这个代码段首先定义了一个允许访问的域名数组 $domain,如 www.a.comwww.b.comwww.c.com
  • 只有当请求的域名在 $domain 数组中时,才允许访问 WordPress 站点,否则返回 403 错误,拒绝访问。

注意事项

1. 支持 HTTPS 协议

如果你的 WordPress 站点使用了 HTTPS 协议,需要将代码中的 http:// 修改为 https://

define('WP_SITEURL', 'https://' . $_SERVER['HTTP_HOST']);
define('WP_HOME', 'https://' . $_SERVER['HTTP_HOST']);

2. 网站安装在二级目录

如果你的 WordPress 站点安装在服务器的二级目录下(例如 www.a.com/blog),则需要进一步修改代码:

define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST'] . '/blog');
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST'] . '/blog');

根据你的安装目录调整 /blog 为实际的路径。

第三步:修改静态文件地址

尽管以上代码可以实现多域名访问,但网站中的静态资源(如图片、视频等)地址仍包含原始安装的域名。如果需要让静态资源在不同域名访问时自动适应当前域名,可以使用相对路径解决此问题。

wp-config.php 中添加以下代码:

define('WP_CONTENT_URL', '/wp-content');

作用:

  • 这个代码将 WordPress 的静态资源路径(如 wp-content 文件夹中的文件)设置为相对路径。
  • 这样一来,不同域名访问时,静态资源的地址会根据当前域名动态变化,确保静态资源也可以在不同域名下正常加载。

给TA打赏
共{{data.count}}人
人已打赏
WordPress教程

WordPress检查发布文章是否存在重复标题,同时进行提示

2024-3-21 13:30:25

情感

工作愉快的说说心情短语

2023-8-27 17:48:46

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索