将非wwwredirect到包括https的www

我在redirect时遇到问题:

https://example.comhttps://www.example.com

我目前得到了这个,它没有达到我需要的结果,我不知道为什么:

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

我基本上想要redirect到https://www.example.com

我感谢任何帮助。

根据您的评论,您尝试redirect,以避免在浏览器窗口中出现错误的URL SSL警告。 这是不能做到的,因为redirect发生在SSL握手之后(因为它使用一个Location:响应头来请求,直到SSL握手发生并且被用户接受的时候才会被发送)。

你最好的办法是:

  • 将example.com分割成单独的VirtualHost并build议使用mod_alias作为@HampusLi
  • example.com购买另一个证书并将其应用于此VirtualHost

或者,您可以获得适用于example.comwww.example.com的SAN(主题备用名称)证书。

你不需要mod_rewrite,你可以使用这个简单的语法在http虚拟主机下使用更轻量级的内置模块mod_alias:

 Redirect permanent / https://example.com/