我有一个允许 ssl 和非 ssl 浏览的网站。
我在 Apache 中设置了两个虚拟主机来处理这两种情况,即:
<VirtualHost *:80>
...
</VirtualHost>
和
<IfModule mod_ssl.c>
<VirtualHost *:443>
...
</VirtualHost>
</IfModule>
现在,让我恼火的是,两个 vhost 中的(相当大的)配置都是重复的(唯一的区别是在 ssl-vhost 中添加了 SSL 参数),所以当我想更改某些内容时,我需要在两个 vhost 中都进行更改。而且感觉和看起来都很马虎。
有什么办法可以合并这两种配置吗?
非常感谢。
答案1
是的,正如@Hex 在他的评论中提到的那样,这是必要的。
不过,你可以走捷径,使用Include
指令不要使通用配置冗余,如下所示:
<VirtualHost _default_:80>
...
include conf/common_rule.conf
</VirtualHost>
<VirtualHost _default_:443>
... #SSL rules
include conf/common_rule.conf
</VirtualHost>
从一个非常相似的问题中偷来的“我是否必须复制端口 80 和 443 的 Virtualhost 指令?”。