我只想将我的网站 example.com 重定向到 https://www.example.com
但场景是:
- 我的根域没有 SSL 即example.com
- 我的网站是基于 CMS 的网站,cname 是在 www 上创建的。
- www 是 CMS 的一个 cname,指向我的网站,CMS 有它的 自己的 ssl 即 https://www.example.com
- 我使用的是 CMS 的 SSL,而不是域名提供商。
现在,我所要做的就是将所有可能的 URL 重定向到 https://www.example.com .
我使用 .htaccess 进行了重定向,除了一个以外,其他都工作正常。
example.com --- 工作正常
http://example.com/ --- 工作正常
https://example.com/ --- 工作不正常
https://www.example.com/ --- 工作正常
http://www.example.com/ --- 工作正常
不知道为什么?这是我的 .htaccess 代码:
RewriteEngine on
# Redirect to domain with www.
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# Same for HTTPS:
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
有人可以帮助我吗?我想将我所有的 URL 重定向到 https://www.example.com
注意:如果我在我的根域中也从域提供商那里获取 SSL,那么它会抛出不正确的证书名称错误。
我们提供 1&1 托管服务,CMS 是 Hubspot。
最佳答案
首先从非 www 重定向到 www,然后从 HTTP 重定向到 HTTPS:
RewriteCond %{HTTPS} off
RewriteRule (.*) https://www.example.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^example.com
RewriteRule (.*) https://www.example.com/$1 [R=301,L]
关于apache - .HTACCESS 重定向不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49586864/