我无法重定向:
https://example.com
到https://www.example.com
。
我目前已经得到了这个,但它没有达到我需要的结果,我不确定为什么:
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
我基本上想将所有内容重定向到https://www.example.com
我感谢任何帮助。
答案1
根据您的评论,您尝试重定向是为了避免浏览器窗口中出现 URL 不匹配的 SSL 警告。这无法完成,因为重定向发生在 SSL 握手之后(因为它使用响应Location:
标头来请求,而该请求直到 SSL 握手发生并被用户接受后才会发送)。
你最好的做法是:
- 按照@HampusLi 的建议,将 example.com 拆分为一个单独的网站
VirtualHost
并使用 mod_alias - 购买另一个证书
example.com
并将其应用于此VirtualHost
example.com
或者,您可以获取适用于和的SAN(主题备用名称)证书www.example.com
。
答案2
您不需要 mod_rewrite 来实现这一点,您可以在 http vhost 下使用更轻量级的内置模块 mod_alias 和以下简单的语法:
Redirect permanent / https://example.com/