.htaccess从http重定向到https时的循环

.htaccess从http重定向到https时的循环,.htaccess,.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.%{

我有以下代码:

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\u PORT}80