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

时间:2018-06-12 02:08:34

标签: php regex .htaccess socialengine

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

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

<IfModule mod_rewrite.c>
  Options +FollowSymLinks
  RewriteEngine On

  RewriteCond %{SERVER_PORT} 80
  RewriteRule ^(.*)$ https://www.flatparty.com/$1 [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时,它运行正常。但是一旦我登录就会出现重定向问题。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

最后,我得到了解决该问题的方法! .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并最终导致无限循环且请求将永远无法完成。

感谢您的帮助和建议。