![](/img/trans.png)
[英]Resolving http://www.example.com to permanently redirect to https://example.com via htaccess
[英]Redirect https://example.com/ to https://www.example.com/ without changing httpd.conf
我为我的网站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中创建一个virtualhost来绕过证书错误。 像这样的代码:
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,因为我的网站在共享主机上工作。 所以我打电话给托管管理员,请他为我创建一个虚拟主机,但没有成功! 我该如何解决这个问题? 我将感谢任何解决它的人。
如果您的证书是www.example.com而不是example.com的证书,则尝试访问https://example.com
时将始终收到证书警告,因为URL中的主机名与证书的主题不匹配。证书。
这就是证书验证的工作原理,并且httpd.conf不变,没有重定向,没有DNS CNAME,没有技巧,也没有什么可以帮助您解决此问题的方法。 您唯一的选择是拥有一个与example.com匹配的证书,并且有多个CA可以为您提供针对这种情况的免费证书。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.