我有一个又长又复杂的指令列表,我必须将它们复制到端口80和443的不同组中,因为我使用的是SSL。每当我更新我的mod_rewrite规则时,我必须记住在两个地方都这样做,否则我会破坏我的应用程序……这种重复是在自找麻烦。有没有办法将它们组合在一起或者给它们起别名--两者之间唯一的区别是,端口443版本包含SSLEngine、SSLCertificateFile等。
My包含许多mod_rewrite规则、LocationMatch规则、CGI指令等。
另外,我不能使用.htaccess文件。
发布于 2009-03-24 22:02:37
发布于 2013-06-13 18:24:19
您可以在单个Virtualhost指令中使用任意数量的主机和端口。
<VirtualHost addr[:port] [addr[:port]] ...> ... </VirtualHost>
在我的例子中,我使用了。
<VirtualHost *:80 *:443>
ServerName loop.lk
....
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/local.crt
</VirtualHost>
发布于 2015-11-05 21:17:45
很抱歉这样的老帖子,但为了帮助其他谷歌人,我想分享我是如何处理它的:
我的本地主机上有几个vhost,比如:localhost
、foo.com
、bar.com
在我的笔记本电脑(macosx)上,这是一个本地主机站点,我可以使用自签名证书,因此ssl部分对于所有vhosts都是相同的……
我做的是这样的:
我创建了目录/etc/apache2/extra/vhosts/
。
我创建了一个/etc/apache2/extra/vhosts/localhost.conf
ServerName localhost
DocumentRoot "/www/localhost"
<Directory /www/localhost>
Require all granted
</Directory>
ErrorLog "/var/log/apache2/localhost.error_log"
CustomLog "/var/log/apache2/localhost.access_log" common
一个/etc/apache2/extra/vhosts/foo.conf
ServerName foo.com
DocumentRoot "/www/foo.com"
<Directory /www/foo.com>
Require all granted
</Directory>
ErrorLog "/var/log/apache2/foo.com.error_log"
CustomLog "/var/log/apache2/foo.com.access_log" common
一个/etc/apache2/extra/vhosts/bar.conf
ServerName bar.com
DocumentRoot "/www/bar.com"
<Directory /www/bar.com>
Require all granted
</Directory>
ErrorLog "/var/log/apache2/bar.com.error_log"
CustomLog "/var/log/apache2/bar.com.access_log" common
最后是一个/etc/apache2/extra/vhosts/ssl.conf
SSLEngine on
SSLCertificateFile "/etc/apache2/ssl/server.crt"
SSLCertificateKeyFile "/etc/apache2/ssl/server.key"
在我的/etc/apache2/extra/httpd-vhosts.conf
中
<VirtualHost *:80>
Include /etc/apache2/extra/vhosts/localhost.conf
</VirtualHost>
<VirtualHost *:443>
Include /etc/apache2/extra/vhosts/localhost.conf
Include /etc/apache2/extra/vhosts/ssl.conf
</VirtualHost>
<VirtualHost *:80>
Include /etc/apache2/extra/vhosts/foo.conf
</VirtualHost>
<VirtualHost *:443>
Include /etc/apache2/extra/vhosts/foo.conf
Include /etc/apache2/extra/vhosts/ssl.conf
</VirtualHost>
<VirtualHost *:80>
Include /etc/apache2/extra/vhosts/bar.conf
</VirtualHost>
<VirtualHost *:443>
Include /etc/apache2/extra/vhosts/bar.conf
Include /etc/apache2/extra/vhosts/ssl.conf
</VirtualHost>
https://stackoverflow.com/questions/679383
复制相似问题