好的,我正在运行带有几个虚拟主机的 apache 2,其中两个在同一个域上运行。现在我的问题是,其中一个应该在子域 (dev.domain.com) 上运行,另一个应该在其他所有域上运行,但我无法让它工作。
我在 sites-available 中获得了 2 个文件( dev.domain.com 和 domain.com ),并且两个文件均在 sites-enabled 中启用了符号链接。
这是我在文件中得到的内容
dev.domain.com
<VirtualHost *:80>
ServerName dev.domain.com
ServerAlias development.domain.com
DocumentRoot /home/myusername/public_www/dev.domain.com
<Directory /home/myusername/public_www/dev.domain.com/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride All
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
</VirtualHost>
域名.com
<VirtualHost *:80>
ServerName domain.com
ServerAlias *.domain.com *.domain.info
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} !^domain\.com$ [NC]
RewriteRule ^(.*)$ http://domain.com$1 [R=301,L]
</IfModule>
DocumentRoot /home/myusername/public_www/domain.com
<Directory /home/myusername/public_www/domain.com/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride All
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
</VirtualHost>
那么有人知道我的配置有什么问题吗?我将非常感激您的帮助,我一直在尝试这个问题,但没有成功。
注意:我的实际域以 hu 开头,因此我认为 dev.h.... 会在 h.... 文件之前加载。
答案1
ServerAlias *.domain.com *.domain.info
意味着该定义将用于 domain.com 中的所有主机,并覆盖 dev.domain.com 定义。
您真的需要通配符吗?请注意,除非您在 DNS 条目中也使用通配符,否则这样做毫无意义,您应该只为实际存在的 DNS 条目创建别名。
如果你确实需要使用通配符,则需要删除虚拟主机dev.domain.com
,而是使用 domain.com 虚拟主机中的重写规则来映射http://dev.domain.com
到例如http://www.domain.com/dev