在 SocialEngine 4.2.9 中将 htaccess 修改为 https 重定向后重定向问题太多 [重定向循环]

Too many redirects issue [redirect loop] after modifying htaccess to https redirect in SocialEngine 4.2.9

最近我为我们的域安装了 ssl 证书。作为 https 安全重定向的一部分,将 htaccess 更改为重定向到 https。它适用于主页。但是,当我以用户或管理员身份登录时,重定向失败并收到一条消息,如重定向太多,页面加载失败,因为重定向在 https 和 http 之间来回循环。请帮我解决这个问题。

请找到我当前使用的 htaccess 文件

<IfModule mod_rewrite.c>
  Options +FollowSymLinks
  RewriteEngine On

  RewriteCond %{SERVER_PORT} 80
  RewriteRule ^(.*)$ https://www.flatparty.com/ [R,L]

  RewriteRule ^(blog)($|/) - [L]

  # Get rid of index.php
  RewriteCond %{REQUEST_URI} /index\.php
  RewriteRule (.*) index.php?rewrite=2 [L,QSA]

  # Rewrite all directory-looking urls
  RewriteCond %{REQUEST_URI} /$
  RewriteRule (.*) index.php?rewrite=1 [L,QSA]

  # Try to route missing files
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} public\/ [OR]
  RewriteCond %{REQUEST_FILENAME} \.(jpg|gif|png|ico|flv|htm|html|php|css|js)$
  RewriteRule . - [L]

  # If the file doesn't exist, rewrite to index
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?rewrite=1 [L,QSA]

</IfModule>

当我访问 https://www.flatparty.com 时,它工作正常。但是一旦我登录就会出现重定向问题。

在 htaccess 文件中添加以下代码。

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

我终于找到了问题的解决方案!!这不是 .htaccess 内容的问题,而是服务器代码的问题。以下代码是重定向循环问题的原因。

$host = $_SERVER['HTTP_HOST'];
$request_uri = $_SERVER['REQUEST_URI'];
$good_url = "http://" . $host . $request_uri;

header("HTTP/1.1 301 Moved Permanently");
header("Location: $good_url");

.htaccess 代码工作正常,每当 htaccess 重定向 url 到 https 并且上面提到的代码被重定向到 http 并最终导致无限循环并且请求永远不会完成。

感谢您的帮助和建议。