首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我是否必须复制端口80和443的Virtualhost指令?

我是否必须复制端口80和443的Virtualhost指令?
EN

Stack Overflow用户
提问于 2009-03-24 21:44:18
回答 6查看 59.5K关注 0票数 62

我有一个又长又复杂的指令列表,我必须将它们复制到端口80和443的不同组中,因为我使用的是SSL。每当我更新我的mod_rewrite规则时,我必须记住在两个地方都这样做,否则我会破坏我的应用程序……这种重复是在自找麻烦。有没有办法将它们组合在一起或者给它们起别名--两者之间唯一的区别是,端口443版本包含SSLEngine、SSLCertificateFile等。

My包含许多mod_rewrite规则、LocationMatch规则、CGI指令等。

另外,我不能使用.htaccess文件。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-03-24 22:02:37

不能使用include指令来包含通用规则吗?here

article

例如:

代码语言:javascript
复制
<VirtualHost _default_:80>
    ...
    include conf/common_rule.conf
</VirtualHost>

<VirtualHost _default_:*>
    ...
    include conf/common_rule.conf
</VirtualHost> 

<VirtualHost _default_:443>
    ... #SSL rules
    include conf/common_rule.conf
</VirtualHost>  
票数 52
EN

Stack Overflow用户

发布于 2013-06-13 18:24:19

您可以在单个Virtualhost指令中使用任意数量的主机和端口。

代码语言:javascript
复制
<VirtualHost addr[:port] [addr[:port]] ...> ... </VirtualHost> 

在我的例子中,我使用了。

代码语言:javascript
复制
<VirtualHost *:80 *:443>
  ServerName loop.lk

 ....
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/local.crt

</VirtualHost>
票数 36
EN

Stack Overflow用户

发布于 2015-11-05 21:17:45

很抱歉这样的老帖子,但为了帮助其他谷歌人,我想分享我是如何处理它的:

我的本地主机上有几个vhost,比如:localhostfoo.combar.com

在我的笔记本电脑(macosx)上,这是一个本地主机站点,我可以使用自签名证书,因此ssl部分对于所有vhosts都是相同的……

我做的是这样的:

我创建了目录/etc/apache2/extra/vhosts/

我创建了一个/etc/apache2/extra/vhosts/localhost.conf

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
SSLEngine on
SSLCertificateFile "/etc/apache2/ssl/server.crt"
SSLCertificateKeyFile "/etc/apache2/ssl/server.key"

在我的/etc/apache2/extra/httpd-vhosts.conf

代码语言:javascript
复制
<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>
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/679383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档