Apache:SSL证书不能与www一起使用,如何删除?

时间:2013-11-23 09:55:20

标签: apache ssl no-www

我尝试使用新安装的SSL证书设置我们的VPS。该证书仅适用于domain.com,而不是www.domain.com。因此,当用户访问https://www.domain.com时,他们现在会收到“不安全的页面”警告 - 我当然不希望这样。我想将用户重定向到https://domain.com,但我一直陷入无限循环......

这是我的虚拟主机文件..

<VirtualHost *:80>
     ServerAdmin my@email.com
     ServerName domain.com
     ServerAlias domain.com
     Redirect permanent / https://domain.com/
     DocumentRoot /var/www/domain.com/
     <Directory /var/www/domain.com/>
        AllowOverride ALL
     </Directory>
     ErrorLog /var/www/logs/domain.com/error.log
     CustomLog /var/www/logs/domain.com/access.log combined
</VirtualHost>

<VirtualHost *:443>
     ServerAdmin my@email.com
     ServerName domain.com
     ServerAlias domain.com
     DocumentRoot /var/www/domain.com/
     <Directory /var/www/domain.com/>
        AllowOverride ALL
     </Directory>
     ErrorLog /var/www/logs/domain.com/error.log
     CustomLog /var/www/logs/domain.com/access.log combined
     SSLEngine on
     SSLProtocol all
     SSLCertificateFile /etc/ssl/mycert.crt
     SSLCertificateKeyFile /etc/ssl/mykey.key
     SSLCACertificateFile /etc/ssl/myca.crt
</VirtualHost>

我是这方面的初学者,除了购买我真的买不起的通配证外,我似乎无法找到解决方案。 非常感谢你提前!

1 个答案:

答案 0 :(得分:0)

您可能需要将所有的www url调用重定向到非www。请使用.htaccess尝试以下重写规则

RewriteEngine On
RewriteCond %{HTTP_HOST}  ^www.example.com [nocase]
RewriteRule ^(.*)         http://example.com/ [last,redirect=301]

将example.com替换为您的域名,并确保将其放在您网站文档根目录的.htaccess中。