WordPress外贸建站过程中,有的客户可能需要一个WordPress独立外贸网站,需要绑定多个域名,用来访问网站;但是,WordPress在默认安装的情况下,只支持绑定1个独立域名,而且会把域名信息存储在网站数据库中,而且,很多类似地方(类似图片地址、站内链接地址)都可能会保存包含域名内容的绝对路径到数据库表中,那么,如果我们有需要在一个独立的WordPress网站上绑定多个域名来访问怎么办呢?其实方法很简单,而且不止一个。
方法一:使用域名重定向解析方法
使用域名重定向解析的方法,最简单直接,只需要把绑定到网站上的域名,在其域名服务商那里,做一个简单的域名重定向的解析设置就可以了。
我们以把 wpqiye.com 域名也绑定到 wppop.com 网站用来访问为例:
在wpqiye.com域名注册商那里,进入域名解析管理(以阿里云域名解析为例),如下图所示:
- 记录类型:可以选择“显性URL – 将域名重定向到另外一个地址”或者“隐性URL – 与显性URL类似,但是会隐藏真实目标地址”,来做重定向解析;
- 主机记录:填写 www 即可;
- 记录值:填写重定向到的当前网站网址(比如:https://www.wppop.com/)
- TTL:按默认值即可。
设置完成后,确定保存就可以。之后,我们就在访问 https://www.wpqiye.com/ 这个新域名时,自动跳转到 https://www.wppop.com/ 网站了。
该方法的缺点:
- 域名会一直显示为 https://www.wpqiye.com/;而且URL层级关系无法表现;
- 没有改变网站中文件的真实路径,访问链接还是基于https://www.wppop.com/域名的URL地址。
方法二
上面的方法简单直接,但也有其缺点,如果你希望每个绑定的域名访问网站时,都是显示对应的域名URL地址,那么方法二可以满足你的需求。
在你当前网站的文件管理(或者FTP管理)中,找到网站根目录下的 wp-config.php 文件,打开编辑并找到 define(‘WP_DEBUG’, false);
这行代码。如下图所示:
define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']);
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);
简单2行代码就可以实现了。这2行代码的意思是设置网站域名为当前访问的域名,也就是取消了WordPress安装时使用的原始域名的绑定。
如果是要指定多个域名绑定访问的话,可以使用下面的代码:
$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']);
}
其中的www.a.com、www.b.com、www.c.com 就是要绑定的域名,把这几个放在上面的 $domain 数组中即可。
经过以上操作修改后,网站就可以实现多域名访问了,但是网站中的静态资源(比如后台上传的图片、视频等),在插入的文章里面的地址也是固定的(包含了原始安装域名)。以上修改域名操作后也并不会修改这些附件路径里的域名部分,所以,还需要修改静态文件地址,使用以下代码可以解决:
define('WP_CONTENT_URL','/wp-content');
把这段代码加入上面的代码下面即可。
至此,WordPress网站就可以实现多域名绑定访问了。
友情提示:
WordPress多域名绑定的方法实现起来其实很简单,主要是通过对 WP_SITEURL
和 WP_HOME
的重新定义,当你使用一个域名去访问网站时,WordPress内部的机制就会将需要用到访问地址的地方全部修改为当前访问的域名。但这种方法过于暴力,对搜索引擎是不友好,因为这种方法仅仅是让网站可以被多域名访问,可是,这会给搜索引擎带来识别上的困难,一般会认为是镜像网站,从而直接对能访问到的所有网站进行打压,降低网站搜索收录和排名甚至K掉所有域名。