Apache 为什么htaccess以重定向循环结束?
我获得了以下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会解释这
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处理的
是什么意思?客户端不会被重定向,只是重写而已