【问题标题】:HTTP to HTTPS - Too many redirectsHTTP 到 HTTPS - 重定向过多
【发布时间】:2016-07-11 08:12:48
【问题描述】:

我有一个带有 Wordpress 的网站。我需要一些单页来重定向 HTTPS

我从 stackoverflow 获取代码并放入 .htaccess

        # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    RewriteCond %{HTTPS} off
    RewriteCond %{THE_REQUEST} /online-order-auto [NC]
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

    RewriteCond %{HTTPS} on
    RewriteCond %{THE_REQUEST} !/online-order-auto [NC]
    RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

    RewriteRule ^index\.php$ - [L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress
    RewriteCond %{HTTP_HOST} ^(www\.)?site\.com\.swtest\.ru$
    RewriteRule ^(.*)$ http://www.site.ru/$1 [L,R=301]

浏览器写了“ERR_TOO_MANY_REDIRECTS”。 我不明白有什么问题

【问题讨论】:

  • 这段代码将http重定向到https,将https重定向到http,所以你有无限循环
  • ^(www\.)?site\.com\.swtest\.ru$ 应该是什么?您当然不希望在规范重定向中使 www 可选,这将创建一个重定向循环。 (虽然主机在当前状态下被捣碎,所以永远不会匹配。)毕竟这也是你的 WP 东西,所以无论如何都不会被看到。
  • 我删除了它,但重定向仍然在这里。我只需要在 /online-order-auto/ 中重定向到 https 当我单击此页面中的任何链接时,我需要返回 http
  • @user2896218 请注意,仅将某些 url 重定向到 https 是不安全的。对中间人的唯一保护是完整网站上的 https + HSTS
  • “我删除了它,但重定向仍然在这里。” - 确保您已清除浏览器缓存。 301重定向会被浏览器缓存。

标签: wordpress .htaccess redirect https


【解决方案1】:

试试这个。我一直在寻找,这是我让它工作的唯一方法......

#non-www. http to www. https
RewriteCond %{ENV:HTTPS} !on
RewriteCond %{HTTP_HOST} ^(www\.)?yourdomain\.com$
RewriteRule (.*) https://www.yourdomain.com/$1 [R=301,L]

#non-www. https to www. https
RewriteCond %{ENV:HTTPS} on
RewriteCond %{HTTP_HOST} ^yourdomain\.com$
RewriteRule (.*) https://www.yourdomain.com/$1 [R=301,L]

【讨论】:

  • 是的,这是为我做的。我已经通过 wp-config 文件尝试了十几个 .htaccess + 代码,但没有一个有效。这为我修复了它,现在我已经为 http www 和非 www 正确定向到 https 的 301。我不知道为什么这个小改动会奏效,但这绝对是我找到的最佳解决方案
猜你喜欢
  • 2017-05-25
  • 1970-01-01
  • 1970-01-01
  • 2018-02-04
  • 2011-09-06
  • 2018-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多