使用apache2和虚拟主机的子域配置
我正在运行ubuntu 12.04的服务器上设置一个网页 我已经停用了默认站点(一个不同的默认ssl),并创建了一个新的站点,我需要启动并运行它,它将是一个子域 假设我有foo.com。 我的目标是foo.com抛出403 http错误,sub.foo.com呈现我需要的网页。 我的虚拟主机如下所示: foo.com(默认)使用apache2和虚拟主机的子域配置,apache2,subdomain,virtualhost,server-name,Apache2,Subdomain,Virtualhost,Server Name,我正在运行ubuntu 12.04的服务器上设置一个网页 我已经停用了默认站点(一个不同的默认ssl),并创建了一个新的站点,我需要启动并运行它,它将是一个子域 假设我有foo.com。 我的目标是foo.com抛出403 http错误,sub.foo.com呈现我需要的网页。 我的虚拟主机如下所示: foo.com(默认) 服务器管理员webmaster@localhost ServerName foo.com DocumentRoot/var/www/default 选项如下符号链接 不允
服务器管理员webmaster@localhost
ServerName foo.com
DocumentRoot/var/www/default
选项如下符号链接
不允许超限
选项索引跟随符号链接多视图
不允许超限
命令允许,拒绝
通融
ScriptAlias/cgi-bin//usr/lib/cgi-bin/
不允许超限
选项+执行CGI-多视图+符号链接所有者匹配
命令允许,拒绝
通融
ErrorLog${APACHE_LOG_DIR}/error.LOG
#可能的值包括:调试、信息、通知、警告、错误、临界值、,
#警惕,埃默格。
日志级别警告
CustomLog${APACHE\u LOG\u DIR}/access.LOG组合
别名/doc/“/usr/share/doc/”
选项索引多视图跟随符号链接
不允许超限
命令拒绝,允许
全盘否定
允许从127.0.0.0/255.0.0.0::1/128开始
sub.foo.com
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName sub.foo.com
DocumentRoot /var/www/sub
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/sub/>
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 None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
服务器管理员webmaster@localhost
ServerName sub.foo.com
DocumentRoot/var/www/sub
选项如下符号链接
允许超越所有
选项索引跟随符号链接多视图
允许超越所有
命令允许,拒绝
通融
ScriptAlias/cgi-bin//usr/lib/cgi-bin/
不允许超限
选项+执行CGI-多视图+符号链接所有者匹配
命令允许,拒绝
通融
ErrorLog${APACHE_LOG_DIR}/error.LOG
#可能的值包括:调试、信息、通知、警告、错误、临界值、,
#警惕,埃默格。
日志级别警告
CustomLog${APACHE\u LOG\u DIR}/access.LOG组合
别名/doc/“/usr/share/doc/”
选项索引多视图跟随符号链接
不允许超限
命令拒绝,允许
全盘否定
允许从127.0.0.0/255.0.0.0::1/128开始
当我访问sub.foo.com时,将显示该页面。
当我访问foo.com时,会显示相同的页面(:S),我需要403
我做错了什么?您是否在Apache配置中启用了NamedVirtualHosts?Apache在重新启动时是否会给您任何警告?是否所有站点都已启用 它们配置了不同的documentroot,所以我猜您在两个路径中都有相同的文件,或者实际上两个请求都由相同的vhost配置提供服务。 在foo.com的配置中,我首先将
Allow from all
更改为Deny from all
:
<Directory /var/www/default/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Deny from all
</Directory>
选项索引跟随符号链接多视图
不允许超限
命令允许,拒绝
全盘否定
…有了这一变化,您更有可能收到403的问候;)
<Directory /var/www/default/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Deny from all
</Directory>