Apache2 Apache 2.2是否忽略VirtualDocumentRoot虚拟主机?
我有几个域,我希望通过mod_vhost_别名启用通配符子域 在我的httpd.conf中,我有以下通用规则:Apache2 Apache 2.2是否忽略VirtualDocumentRoot虚拟主机?,apache2,virtualhost,apache,httpd.conf,Apache2,Virtualhost,Apache,Httpd.conf,我有几个域,我希望通过mod_vhost_别名启用通配符子域 在我的httpd.conf中,我有以下通用规则: <VirtualHost [ip here]:80> ServerName domain1.com ServerAlias www.domain1.com DocumentRoot /home/user1/public_html </VirtualHost> <VirtualHost [ip here]:80> Ser
<VirtualHost [ip here]:80>
ServerName domain1.com
ServerAlias www.domain1.com
DocumentRoot /home/user1/public_html
</VirtualHost>
<VirtualHost [ip here]:80>
ServerName *.domain1.com
VirtualDocumentRoot /home/user1/subdomains/%-3+
</VirtualHost>
<VirtualHost [ip here]:80>
ServerName domain2.com
ServerAlias www.domain2.com
DocumentRoot /home/user2/public_html
</VirtualHost>
<VirtualHost [ip here]:80>
ServerName *.domain2.com
VirtualDocumentRoot /home/user2/subdomains/%-3+
</VirtualHost>
#httpd-M
加载的模块:
核心模块(静态)
mpm_预工作_模块(静态)
http_模块(静态)
so_模块(静态)
重写模块(共享)
验证基本模块(共享)
authz_主机_模块(共享)
包含_模块(共享)
日志配置模块(共享)
逻辑模块(共享)
mime_魔法_模块(共享)
mime_模块(共享)
vhost_别名_模块(共享)
dir_模块(共享)
suexec_模块(共享)
php5_模块(共享)
suphp_模块(共享)
ssl_模块(共享)
语法正常
任何关于问题所在的建议都将不胜感激。我真是个笨蛋,这是一个非常简单的解决方案
ServerName
不允许使用通配符,但是ServerAlias
允许使用通配符,所以我只是再次复制了ServerName
这是所有碰巧找到这个答案的人的最终最小化配置(我讨厌你在谷歌上搜索,发现问题却没有答案):
ServerName域名1.com
ServerAlias www.domain1.com
DocumentRoot/home/user1/public\u html
ServerName domain1.com 35;David,此解决方案可在成功解决问题时停止mod#u重写周期)
重写循环赛:
RewriteCond %{ENV:REDIRECT_STATUS} 200|[45]0[0-9]
RewriteRule .* - [L]
RewriteCond%{ENV:REDIRECT_STATUS}200|[45]0[0-9]
重写规则。*-[L]
你能在VirtualDocumentRoot中使用通配符吗?好吧,这是一个来自我不活动的超晚回复,很可能你看不到,但其他人可能会看到。是的,-3+就是这样做的,它把从第三部分开始的所有东西(用点分隔)从右边和前面的所有东西都取下来。对于http://subsub.sub.domain1.com
它将使用/home/user1/subdomains/subsubsub.sub/
作为文档根。@Kyle和Mike实际上没有通配符(“***”),只是它更像substr
。另外,我相信VirtualDocumentRoot
实际上是在
之外使用的,但我们可以通过在内部使用来限制它。
# httpd -M
Loaded Modules:
core_module (static)
mpm_prefork_module (static)
http_module (static)
so_module (static)
rewrite_module (shared)
auth_basic_module (shared)
authz_host_module (shared)
include_module (shared)
log_config_module (shared)
logio_module (shared)
mime_magic_module (shared)
mime_module (shared)
vhost_alias_module (shared)
dir_module (shared)
suexec_module (shared)
php5_module (shared)
suphp_module (shared)
ssl_module (shared)
Syntax OK
<VirtualHost [ip here]:80>
ServerName domain1.com
ServerAlias www.domain1.com
DocumentRoot /home/user1/public_html
</VirtualHost>
<VirtualHost [ip here]:80>
ServerName domain1.com #<-- The fix. Wildcards not supported in ServerName
ServerAlias *.domain1.com
VirtualDocumentRoot /home/user1/subdomains/%-3+
</VirtualHost>
RewriteCond %{ENV:REDIRECT_STATUS} 200|[45]0[0-9]
RewriteRule .* - [L]