Apache:错误configurationredirect显示父目录的目录列表

我有一个由两个子域组成的Apacheconfiguration,这两个子域在Apacheconfiguration中作为虚拟主机实现,存储在磁盘上

/var/www/html (site: box.domain.com) /var/www/owncloud (site: cloud.domain.com) /var/www/owncloud-backup (should not be accessible) 

由于RewriteCondconfiguration错误,导致redirect不会发生(见下文),所以在进入http://box.domain.com时,会显示/ var / www的目录列表。 但是, / var / www在任何configuration文件中都没有定义为DocumentRoot/ var / www中唯一提到的是apache2.conf中的安全模型。

出于安全原因,如果未来configuration中出现类似的错误,我想知道为什么/ var / www出现在目录列表中,当这个目录没有被定义为DocumentRoot的时候。

发现这个错误是非常困难的,因为使用Strict-Transport-Security ,一旦浏览器指向https://网站,浏览器就会自动redirect。

系统是Ubuntu 14.04与Apache 2.4.7-1ubuntu4.17

sites-enabled / box.domain.conf (注意RewriteCond应该包含box.domain.com):

  <VirtualHost *:80> ServerName box.domain.com RewriteEngine on RewriteCond %{SERVER_NAME} =cloud.domain.com RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} END,QSA,R=permanent] </VirtualHost> 

sites-enabled / box.domain.com-le-ssl.conf

 <IfModule mod_ssl.c> <VirtualHost *:443> ServerName box.domain.com ServerAdmin webmaster@localhost DocumentRoot /var/www/html <IfModule mod_headers.c> Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload" </IfModule> SSLEngine on SSLCertificateFile /etc/letsencrypt/live/box.domain.com/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/box.domain.com/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf SSLCertificateChainFile /etc/letsencrypt/live/box.domain.com/chain.pem </VirtualHost> </IfModule> 

sites-available / 000-default.conf

 <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined ProxyRequests off <Proxy *> Order deny,allow Allow from all </Proxy> <Location /> ProxyPass http://localhost:8080/ ProxyPassReverse http://localhost:8080/ ProxyPreserveHost On </Location> </VirtualHost> 

apache2.conf文件几乎是Ubuntu安装的默认文件:

 Mutex file:${APACHE_LOCK_DIR} default PidFile ${APACHE_PID_FILE} Timeout 300 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 5 User ${APACHE_RUN_USER} Group ${APACHE_RUN_GROUP} HostnameLookups Off ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel warn IncludeOptional mods-enabled/*.load IncludeOptional mods-enabled/*.conf Include ports.conf <Directory /> Options FollowSymLinks AllowOverride None Require all denied </Directory> <Directory /usr/share> AllowOverride None Require all granted </Directory> <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride Require all granted </Directory> AccessFileName .htaccess <FilesMatch "^\.ht"> Require all denied </FilesMatch> LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %O" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent IncludeOptional conf-enabled/*.conf IncludeOptional sites-enabled/*.conf