最近改了一下wordpress的链接格式,导致原先挂在wordpress下面的其他站点url有了歧义,例如domain/site,不知道site是文章分类还是另一个站点,于是就想着能不能用另一个域名直接访问到这些站点,答案是可行的
目录
新域名
可以申请一个新的域名,当然也可以直接在旧的域名解析中添加一条A记录,来获得一个新域名,例如添加一条主机记录为wiki的A记录,指向站点所在服务器ip地址。如果需要使用SSL的话,也可以去申请一张SSL证书,因为免费证书大多只支持单个域名,当然你如果是泛域名证书的话当我没说
Apache配置
打开000-default.conf
文件
$ sudo vi /etc/apache2/sites-available/000-default.conf
在最末尾或者你喜欢的地方(不要放在已有节点内部),加上如下配置
<VirtualHost *:80>
ServerName new.domain # 新域名
ServerAdmin webmaster@localhost
DocumentRoot /var/www/main/site # 站点目录
Redirect permanent / https://new.domain # 自动跳转至https,如果不用SSL就删除这行
</VirtualHost>
保存后重启apache
$ sudo service apache2 restart
不用SSL的话,这时访问http://new.domain
,应该就可以访问到该站点了,需要SSL的话,还需进一步配置
SSL配置
首先将申请好的证书文件通过任意方式上传至服务器,然后打开default-ssl.conf
文件
$ sudo vi /etc/apache2/sites-available/default-ssl.conf
在<IfModule mod_ssl.c>
这个节点下,添加以下内容
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
ServerName new.domain # 新域名
DocumentRoot /var/www/main/site # 站点目录
SSLEngine on
SSLCertificateFile path/to/cert # 证书文件路径
SSLCertificateKeyFile path/to/key # 密钥文件路径
SSLCertificateChainFile path/to/chain # 证书链文件路径,可选
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
保存后重启apache,就可以通过https://new.domain
访问到站点了