确定。我正在尝试在ubuntu中设置我的配置文件。
当我查看sites-available
文件夹时,我看到了
000-default.conf
ssl-default.conf
我有一个站点testsite.com,我需要为https配置vhost
ssl-default.conf
添加新的虚拟主题部分吗?我应该将整个文件复制到testsite.conf并在那里进行编辑吗?000-default.conf
?如果我复制文件,是否需要将000
添加到文件名中以便首先读取它?Allow Overrides
等)答案 0 :(得分:0)
通常,VirtualHost的最佳位置是sites-available文件夹中的新文件。标有100-
之类的数字。
类似于sites-available/100-443-myproject.example.com
。
这样,当您使用ae2ensite
和a2dissite
命令时,您将拥有默认设置和myproject.example.com
网站列表中的启用或停用功能。
000
是默认Virtualhost的保留号,因为apache按字母顺序从启用站点的目录中读取文件,默认的虚拟主机应该是第一个(默认的虚拟主机捕获所有格式错误的主机HTTP头) ,当没有VirtualHost
ServerName
匹配时。)
如果您的VirtualHost用于端口80,则必须使用<VirtualHost *:80>
配置指令(或<VirtualHost <my IP>:80>
,取决于NameVirtualHost
设置)。如果你的VirtualHost是用于SSL端口的,那么你需要使用<VirtualHost *:443>
,并且必须确保a2ensite
和a2dissite
这个Virtualhost是唯一的SSL已启用VirtualHost定义(因此不应启用ssl-default)。
使用端口80,ServerName
指令足以让apache决定应该采用哪个VirtualHost。使用端口443和SSL这是不够的,因为在主机头/ ServerName
可以匹配之前进行SSL否定。因此,多个SSL Vh必须使用不同的端口或使用新的SNI系统as described here for example。
现在对于AllowOverride
,你不需要将它放在主配置中(但你可以使用/etc/apache2/conf.d
目录来获取所有共享虚拟主机配置的东西)。您的VirtualHost可以包含足够的说明,例如:
<Virtualhost (....)
ServerName (...)
(...)
<Directory />
# Forbid .htaccess for all the filesystem directory tree
AllowOverride None
</Directory>
<Directory /path/to/somewhere>
# I am mad and I like slow apache server
# So I want to allow .htaccess files
# Instead of putting all the content of this .htaccess right here
# in a Directory section
AllowOverride All
</Directory>
</VirtualHost>