我似乎无法想出这个。我有几个托管在Ubuntu 14.04 / LAMP上的站点,我有一个.conf文件,用于我正在托管的每个域。
但是,如果某人输入了一个不存在的子域,例如,服务器上的某个站点,apache只是将您重定向到一个随机站点(似乎找到/ etc / apache / sites中的第一个.conf文件 - 按字母顺序启用。)
当我的网站仅配置为<VirtualHost *:80>
(非SSL)且有人(如Google僵尸网站)请求此网站的https版本时,会将其重定向到第一个带有{{1的.conf文件的网站规则定义。
我该怎样防止这种情况?我只是希望每个人都登陆错误页面,如果某个域的子域不存在,或者该站点的非https版本不存在(因为,显然你不能将https重定向到http)。
我是否可以在000-default.conf和000-default-ssl.conf中添加一些特定内容以防止这种情况发生?
谢谢!
答案 0 :(得分:0)
这是我为解决这个问题所采取的措施。添加了zzz.conf(因此它在/ etc / apache2 / sites-enabled /中按字母顺序读取最后一次)。这只会导致一个目录,其中的文件显示为&#34;错误。&#34;
这是我在zzz.conf中的内容:
<virtualhost *:80>
ServerAlias *
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</virtualhost>
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAlias *
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
# MSIE 7 and newer should be able to use keepalive
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
</IfModule>