如何在 Apache 中为 HTTP 和 HTTPS 创建 vhost,而无需重复配置
<VirtualHost mysite:80>
<Directory "/Users/myusername/sitefolder">
Options +FollowSymlinks
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>
DocumentRoot "/Users/myusername/sitefolder"
ServerName mysite
</VirtualHost>
<VirtualHost mysite:443>
<Directory "/Users/myusername/sitefolder">
Options +FollowSymlinks
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>
DocumentRoot "/Users/myusername/sitefolder"
ServerName mysite
SSLEngine on
SSLCertificateFile /Users/myusername/certs/server.crt
SSLCertificateKeyFile /Users/myusername/certs/server.key
</VirtualHost>
?
梅布斯
答案1
您可以使用mod_macro。
您创建一个宏,然后使用它定义虚拟主机。网站示例:
## Define a VHost Macro for repetitive configurations
<Macro VHost $host $port $dir>
Listen $port
<VirtualHost *:$port>
ServerName $host
DocumentRoot $dir
<Directory $dir>
# do something here...
</Directory>
# limit access to intranet subdir.
<Directory $dir/intranet>
order deny,allow
deny from all
allow from 10.0.0.0/8
</Directory>
</VirtualHost>
</Macro>
## Use of VHost with different arguments.
Use VHost www.apache.org 80 /projects/apache/web
Use VHost www.perl.com 8080 /projects/perl/web
Use VHost www.ensmp.fr 1234 /projects/mines/web