Apache 子域重定向到主域而不使用virtualhost

Apache 子域重定向到主域而不使用virtualhost,apache,redirect,Apache,Redirect,我在apache中设置了一个站点sub.example.com,在端口80和443上安装了virtualhosts(请参见下面的配置)。事实上,这是服务器上仅有的两个虚拟主机 但是,当我导航到sub.example.com时,浏览器会重定向到example.com,甚至会找到正确的文档根并呈现sub.example.come的登录页面,然后会出现ssl错误,因为我只有sub.example.com的证书 我尝试的第一件事是将example.com重定向回sub.example.com。我首先用重

我在apache中设置了一个站点
sub.example.com
,在端口80和443上安装了virtualhosts(请参见下面的配置)。事实上,这是服务器上仅有的两个虚拟主机

但是,当我导航到
sub.example.com
时,浏览器会重定向到
example.com
,甚至会找到正确的文档根并呈现
sub.example.come
的登录页面,然后会出现ssl错误,因为我只有
sub.example.com
的证书

我尝试的第一件事是将
example.com
重定向回
sub.example.com
。我首先用重写指令尝试了.htaccess,但似乎没有效果。然后,我尝试在apache配置文件中设置永久重定向,但这导致了重定向循环

sub.example.com
如何重定向到
example.com
,而且,
example.com
如何找到文档根目录

理想情况下,
example.com
根本不应该存在,但我对它至少将
example.com
重定向到
sub.example.com
感到满意

这是我的apache配置。(使用ubuntu 12.04和apache 2.2)

ports.conf

NameVirtualHost xx.xx.xx.xx:80
NameVirtualHost xx.xx.xx.xx:443

Listen 80

<IfModule mod_ssl.c>
    Listen 443
</IfModule>

<IfModule mod_gnutls.c>
    Listen 443
</IfModule>
NameVirtualHost xx.xx.xx.xx:80
NameVirtualHost xx.xx.xx.xx:443
听80
听我说
听我说
虚拟主机配置

# redirect to https
<VirtualHost xx.xx.xx.xx:80>
    ServerName sub.example.com
    DocumentRoot /var/www/path/to/webroot
    RedirectPermanent / https://sub.example.com
</VirtualHost>

# https
<VirtualHost xx.xx.xx.xx:443>
    ServerName sub.example.com

    DocumentRoot /var/www/path/to/webroot

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>

    <Directory /var/www/path/to/webroot>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

    SSLEngine on
    SSLCertificateFile    /etc/apache2/ssl/sub.example.com.crt
    SSLCertificateKeyFile /etc/apache2/ssl/sub.example.com.key
    SSLCertificateChainFile /etc/apache2/ssl/chain.crt

    LogLevel notice
    ErrorLog ${APACHE_LOG_DIR}/sub-example-error.log
    CustomLog ${APACHE_LOG_DIR}/sub-example-access.log combined
</VirtualHost>
#重定向到https
ServerName sub.example.com
DocumentRoot/var/www/path/to/webroot
重定向永久/https://sub.example.com
#https
ServerName sub.example.com
DocumentRoot/var/www/path/to/webroot
选项如下符号链接
不允许超限
选项索引跟随符号链接多视图
允许超越所有
命令允许,拒绝
通融
斯伦金安
SSLCertificateFile/etc/apache2/ssl/sub.example.com.crt
SSLCertificateKeyFile/etc/apache2/ssl/sub.example.com.key
SSLCertificateChainFile/etc/apache2/ssl/chain.crt
日志级别通知
ErrorLog${APACHE_LOG_DIR}/sub-example-error.LOG
CustomLog${APACHE_LOG_DIR}/sub-example-access.LOG组合
您已将

ServerName sub.example.com 
两次

你把

ServerName sub.example.com 
两次