将https://example.com/重定向到https://www.example.com/而不更改httpd.conf

时间:2016-06-05 06:00:50

标签: wordpress .htaccess

我为我的网站www.example.com购买了正常的ssl(DV ssl) 我在cpanel上创建了ssl没有问题。 所以我在.htaccess中添加了这些行,我的网站工作到https非常好。

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

好的,这是我的问题: 这个ssl仅适用于https://www.example.com(仅为1个地址购买),因此如果浏览器https://example.com中的每个正文类型都会出现证书错误! 我搜索了这么多,发现我必须在httpd.conf中创建一个虚拟主机以绕过证书错误。 类似这样的代码:

NameVirtualHost *:443
<VirtualHost *:443>
  ServerName example.com
  SSLCertificateFile /etc/ssl/apache2/server.crt
  SSLCertificateKeyFile /etc/ssl/apache2/server.key
  SSLEngine on
  RewriteEngine on
  RewriteRule ^/(.*)  https://www.example.com%{REQUEST_URI}      [L,R]
</VirtualHost>

但我无法在httpd.conf中进行更改,因为我的网站可以在共享主机上运行。 所以我打电话给托管管理员,并要求他为我创建一个虚拟主机,但没有成功!! 我怎么能解决这个问题?我很感激任何人解决它。

1 个答案:

答案 0 :(得分:0)

如果您的证书适用于www.example.com而不是example.com,则在尝试访问https://example.com时,您将始终收到证书警告,因为URL中的主机名与主题名称不匹配证书。

这就是证书验证的工作原理,httpd.conf没有变化,没有重定向,没有DNS CNAME,没有技巧,没有任何可以帮助你解决这个问题。您唯一的选择是拥有一个与example.com相匹配的证书,并且有几个CA为您提供此案例的免费证书。