【问题标题】:Redirecting to force usage of www and SSL for domain in Plesk重定向以强制在 Plesk 中为域使用 www 和 SSL
【发布时间】:2014-02-02 21:27:14
【问题描述】:

我一直在使用它来强制使用 HTTPS:

RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

这非常好用。

如何修改此规则,以便它也强制域 SSL 使用www. 前缀?也许可以在上面的RewriteRule 行内完成?那将是最好的。但我认为不能这样做,因为条件仅适用于非 HTTPS 调用?

不幸的是,我对 Apache 配置及其语法的了解远低于零。

【问题讨论】:

  • 投反对票的人,请解释你的投反对票,以便我改进我的问题或调整我的方法。无评论的反对票在建设性上毫无用处。

标签: ssl rewrite plesk


【解决方案1】:

这对你有用吗?

RewriteCond %{HTTP_HOST} ^example\.com [NC] 
RewriteRule (.*) https://www.example.com/$1 [R=301,L]

RewriteCond %{HTTPS} !^on$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

这实际上更短。

RewriteCond %{HTTP_HOST} ^example\.com [NC,OR]
RewriteCond %{HTTPS} !^on$
RewriteRule (.*) https://www.example.com/$1 [R=301,L]

【讨论】:

  • 谢谢你,杰克。不幸的是,它对我不起作用。从 HTTP 到 HTTPS 的转发工作正常,但带有 www 的 URL 前缀不起作用。我不知道为什么,但我确定我正确应用了配置(并且我调用了 plesk httpdmng 来重新配置域)。
  • 我不使用 plesk 和大多数控制面板 似乎 来改变原始配置的工作方式。但是,标准重写应该仍然有效。我将它用于我自己的网站,您可以在这里测试它htaccess.madewithlove.be 您发布的内容是您的 htaccess 的全部内容吗?
  • 我需要纠正自己。似乎此解决方案有效,但问题是即使在建立连接之前,我在未将 www 应用于域时也会收到警告,因为 SSL 证书仅对域有效 包括 www。现在我明白了,也许使用重写是不可能解决这个问题的。但是,这个问题已经得到了正确的回答,因为它不是关于证书和域相关的问题,而只是重写。感谢您的帮助!
  • 好的,没问题。顺便说一句,某些 CA 允许您在购买证书时使用 www 等备用证书。这样您就可以将 www 或非 www 用于同一证书。我的都这样。如果我想使用其他任何东西,那么我购买通配符证书。但是,根据他们是否允许,您可能可以重新输入密钥。
猜你喜欢
  • 1970-01-01
  • 2016-12-23
  • 2017-06-23
  • 1970-01-01
  • 1970-01-01
  • 2012-05-05
  • 1970-01-01
  • 1970-01-01
  • 2015-11-02
相关资源
最近更新 更多