为什么此 .htaccess 代码会不断重定向?

Why does this .htaccess code do a constant redirect?

标题解释了大部分内容。我正在使用 WAMP。 我有一个包含以下内容的 .htaccess 文件:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/$
RewriteRule (.*)  /?uri=%{REQUEST_URI}

还有一个 index.php,内容如下:

<?php
print_r($_GET)
?>

此外,我收到以下 apache_error.log 错误:

Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.

如果您对我在做什么感到困惑,我正在尝试制作一个 cms,其中 index.php 处理所有其他页面并自行处理(我几乎没有开始)。

它正在进行无限循环,因为即使重写为 /?uri-...

%{REQUEST_URI} 仍然是空的

您应该检查 %{QUERY_SRING} 而不是检查是否存在查询字符串。

RewriteEngine On

RewriteCond %{QUERY_STRING} !(^|&)uri= [NC]
RewriteRule ^ ?uri=%{REQUEST_URI} [L,QSA]