最近我为我们的域安装了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时,它运行正常。但是一旦我登录就会出现重定向问题。
答案 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并最终导致无限循环且请求将永远无法完成。
感谢您的帮助和建议。