Apache 为什么htaccess以重定向循环结束?

Apache 为什么htaccess以重定向循环结束?,apache,.htaccess,redirect,Apache,.htaccess,Redirect,我获得了以下htaccess,最终进入重定向循环: RewriteEngine On RewriteCond %{REQUEST_URI} !^/int(.*)$ RewriteRule ^(.*)$ /int [R,L] RewriteRule . index.php [L] 我添加了将根请求重定向到特定子文件夹的第一条规则。 第二条规则来自WordPress(除其他外) 我不明白为什么会以重定向循环结束。 第二次重写是否会触发另一个请求,以便再次检查htaccess?Thant会解释这

我获得了以下htaccess,最终进入重定向循环:

RewriteEngine On

RewriteCond %{REQUEST_URI} !^/int(.*)$
RewriteRule ^(.*)$ /int [R,L]

RewriteRule . index.php [L]
我添加了将根请求重定向到特定子文件夹的第一条规则。 第二条规则来自WordPress(除其他外)

我不明白为什么会以重定向循环结束。 第二次重写是否会触发另一个请求,以便再次检查htaccess?Thant会解释这个循环


谢谢

每次重写都会创建一个新请求,该请求将通过.htaccess重新处理。 您正在将任何不是以
/int(.*)
开头的内容重写为
/int
。但是,以
/int
开头的任何内容都会跳过第一个重写条件,并被重写为
index.php
。然后
index.php
被重写为
/int
,因为它不是以
/int(.*)
开头的。然后
/int
被重写为
index.php
。。。继续…继续

顺便说一句:当
请求URI
/index.php

RewriteCond %{REQUEST_URI} !^/index.php$
RewriteCond %{REQUEST_URI} !^/int(.*)$
RewriteRule ^(.*)$ /int [R,L]

如果忘记在第一次重新布线条件下是否需要前导正斜杠。。。两种方法都可以尝试。

您告诉任何不在
/int
文件夹中的页面都将被重定向到
/int
文件夹,但下一行您是说所有页面都将被重定向到
index.php
页面。 所以第一条规则说:

http:example.com/about.php
将被重定向到->
http:example.com/int

但第二条规则是
http:example.com/int
被重定向到
http:example.com/index.php


然后第一条规则又回来了,一次又一次地循环

我想我是在告诉它由index.php页面“处理”,而不是重定向。我不知道重写后htaccess会被解析,你说index.php处理的
是什么意思?客户端不会被重定向,只是重写而已