apache - .HTACCESS 重定向不工作

标签 apache .htaccess ssl redirect hubspot

我只想将我的网站 example.com 重定向到 https://www.example.com

但场景是:

  1. 我的根域没有 SSL 即example.com
  2. 我的网站是基于 CMS 的网站,cname 是在 www 上创建的。
  3. www 是 CMS 的一个 cname,指向我的网站,CMS 有它的 自己的 ssl 即 https://www.example.com
  4. 我使用的是 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/

相关文章:

wcf - 如何配置 WCF REST 以使用 SSL?

php - 重写 url 不包含布局?

Apache SSL 使用 openssl 将 itermediateCA.cer 转换为 crt

.htaccess - 禁用特定 url 的 url 重写

.htaccess - modrewrite - 将所有 php 文件转换为 html,这对 SEO 友好并且可以两种方式工作

ssl - 在 Elastic Beanstalk 上同时设置 websockets、粘性 session 和 SSL

java - TOMCAT 继续运行相同的 war 文件故障

Django Apache 重定向问题

windows - 使用 .htaccess 从 URL 中删除特殊字符

java - 如何发出 HTTP 或 HTTPS 请求(强调 "or")