.htaccess 循环从 http 重定向到 https



我有以下代码:

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/xyz重定向到www.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/...

我在这里错过了什么?

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

最新更新