将 https://example.com/ 重定向到 https://www.example.com/ 而不更改 httpd.conf
Posted
技术标签:
【中文标题】将 https://example.com/ 重定向到 https://www.example.com/ 而不更改 httpd.conf【英文标题】:Redirect https://example.com/ to https://www.example.com/ without changing httpd.conf 【发布时间】:2016-10-04 23:17:48 【问题描述】:我为我的网站 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,因为我的网站在共享主机上运行。 所以我打电话给托管管理员并要求他为我创建一个虚拟主机但没有成功! 我该如何解决这个问题?我会感谢任何人解决它。
【问题讨论】:
这可能对你有帮助***.com/questions/18886821/… 没有成功,因为我的证书。仅适用于 1 个地址和通配符证书。太贵了。 为什么不直接在 example.com 上强制使用 WWW? 这种情况很少见,但如果有人在浏览器中输入 h t t p s://example.com 就会出现证书错误!我希望每个体型手动 h t t p s://eample.com 或 h t t p s://www.example.com 没有错误。我对http没有任何问题我的问题是关于在浏览器中手动输入的https 【参考方案1】:如果您的证书是针对 www.example.com 而不是针对 example.com,您在尝试访问 https://example.com
时总是会收到证书警告,因为 URL 中的主机名与证书的主题不匹配.
这只是证书验证的工作原理,没有对 httpd.conf 进行更改,没有重定向,没有 DNS CNAME,没有技巧,没有任何可以帮助您解决此问题的方法。您唯一的选择是拥有一个与 example.com 相匹配的证书,并且有几个 CA 为您提供这种情况下的免费证书。
【讨论】:
tnx Steffen 这是我担心的,但我认为你是对的。现在的问题是我可以在不购买通配符证书的情况下在 www 和非 www 的 cpanel 上上传 2 SSL。 ? @shakib:我不了解 cpanel,除此之外,这是一个与您原来的问题不同的问题,所以如果您在文档中找不到解决方案,我建议您将其作为新问题提出.除此之外,您甚至不需要通配符证书,只需要一个包含 www.example.com 和 example.com 的证书,就像我说的那样,有几个 CA 免费为您提供此类证书。以上是关于将 https://example.com/ 重定向到 https://www.example.com/ 而不更改 httpd.conf的主要内容,如果未能解决你的问题,请参考以下文章
AWS S3 不会将 https://www.example.com 重定向到 https://example.com,但会重定向 http://www.example.com
如何使用 VirtualHost 将 http://example.com 重定向到 apache2.conf 中的 https://example.com
如何在 AWS ALB 上重定向到 https://example.com/ 而不是 https://example.com:443/?