繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM