首页 > 解决方案 > 从http重定向到https时.htaccess循环

问题描述

我有以下代码:

RewriteEngine On
Options +FollowSymlinks
RewriteBase /
RewriteRule ^xyz  xyz.php [PT]    
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

首先重定向重定向www.example.com/xyzwww.example.com/xyz.php.

这工作正常。

第二个有问题。如果我输入example.com,它会创建一个无限循环以:

https://example.com/example.com/example.com

如果我输入www.example.com,它也会创建一个类似于上面的无限循环。

我想从以下位置重定向所有内容:

http://example.com/... https://example.com/...https://www.example.com/...

我在这里想念什么?

标签: .htaccess

解决方案


看起来我在重定向之前没有声明 RewriteCond %{SERVER_PORT} 80 。


推荐阅读