WordPress网站绑定多域名访问

By | 2021年10月15日

通过不同的域名,访问同一个网站目录,同一个数据库,而且可以设置单独不同的ssl证书,可以试试本站演示效果:
https://lianghg.com
https://lianghg.cn
以上两个不同域名,访问的都是本站同一个网站,不影响用户登陆,注册用户可以同时在两个域名登陆。

以本站为例,设置方法:
1、先新建网站,新建过程中,同时绑定域名lianghg.comlianghg.cn,然后正常上传WordPress安装文件,通过域名lianghg.com访问网站,进行WordPress安装,以及完成数据库等配置。此时,WordPress绑定的只有lianghg.com这一个域名,如果你用lianghg.cn去访问,虽然也能访问,但点击页面的链接时,是会跳转变回lianghg.com的。继续用以下步骤设置。
2、在网站根目录下,找到wp-congfig.php文件,编辑添加如下信息:

$domain = array("lianghg.cn");
if(in_array($_SERVER['HTTP_HOST'], $domain)){
define('WP_SITEURL', 'https://' . $_SERVER['HTTP_HOST']);
define('WP_HOME', 'https://' . $_SERVER['HTTP_HOST']);
}

保存后,即可使用lianghg.cn单独访问网站了,点击链接、登陆后台等,都不会再跳转回lianghg.com域名。
3、配置ssl证书。如果使用Let’s Encrypt证书,直接用建站工具获取即可,lianghg.comlianghg.cn使用的是同一个证书,简单又方便管理。我有强迫症,两个域名要使用不同的一年证书,我用的是Apache,找到网站的配置文件,然后编辑,添加如下信息:

<VirtualHost *:443>
    DocumentRoot "/www/lianghg.com/"
    ServerName SSL.lianghg.com
    ServerAlias lianghg.com
    #errorDocument 404 /404.html
   
    #SSL
    SSLEngine On
    SSLCertificateFile /www/选择lianghg.com的证书文件
    SSLCertificateKeyFile /www/选择lianghg.com的证书文件
    SSLProtocol All -SSLv2 -SSLv3 -TLSv1
    SSLHonorCipherOrder On
    
    #DENY FILES
     <Files ~ (\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)$>
       Order allow,deny
       Deny from all
    </Files>

    #PATH
    <Directory "/www/lianghg.com/">
        SetOutputFilter DEFLATE
        Options FollowSymLinks
        AllowOverride All
        Require all granted
        DirectoryIndex index.php index.html index.htm default.php default.html default.htm
    </Directory>
</VirtualHost>
<VirtualHost *:443>
    DocumentRoot "/www/lianghg.com/"
    ServerName SSL.lianghg.cn
    ServerAlias lianghg.cn
    #errorDocument 404 /404.html
   
    #SSL
    SSLEngine On
    SSLCertificateFile /www/选择lianghg.cn的证书文件
    SSLCertificateKeyFile /www/选择lianghg.cn的证书文件
    SSLProtocol All -SSLv2 -SSLv3 -TLSv1
    SSLHonorCipherOrder On
    
    #DENY FILES
     <Files ~ (\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)$>
       Order allow,deny
       Deny from all
    </Files>

    #PATH
    <Directory "/www/lianghg.com/">
        SetOutputFilter DEFLATE
        Options FollowSymLinks
        AllowOverride All
        Require all granted
        DirectoryIndex index.php index.html index.htm default.php default.html default.htm
    </Directory>
</VirtualHost>

保存设置,然后重启Apache。不同域名访问,就是会显示各自的ssl证书了。

发表评论