.htaccess htaccess句柄从index.php重定向到index.html

.htaccess htaccess句柄从index.php重定向到index.html,.htaccess,mod-rewrite,apache2,.htaccess,Mod Rewrite,Apache2,我有一个具有以下结构的站点: / | folder1 | index.php index.html 默认情况下打开index.php,但如果用户未登录,我会: header('Location: '.$domain.'/folder1/index.html'); exit; 这适用于任何文件夹,但对于folder1,我还有一个.htaccess(位于站点的根目录下)来处理index.php上的一些逻辑。 .htaccess如下所示: RewriteEngine on

我有一个具有以下结构的站点:

/
|
folder1
    |
    index.php
    index.html
默认情况下打开index.php,但如果用户未登录,我会:

header('Location: '.$domain.'/folder1/index.html');
exit;
这适用于任何文件夹,但对于folder1,我还有一个.htaccess(位于站点的根目录下)来处理index.php上的一些逻辑。 .htaccess如下所示:

RewriteEngine on
RewriteBase /
RewriteRule \.(php)$ - [L]
RewriteRule ^folder1/([^/]+)/?$ folder1/index.php?source=$1 [L]
我需要帮助来添加一个规则,这样,如果我请求index.html,它就会得到服务而不会带来不便。 否则,access.log将返回:

10.211.55.2--[14/Jan/2021:20:15:50+0100]“GET/folder1/index.html HTTP/1.1”302 589“-”Mozilla/5.0(麦金塔;英特尔Mac OS X 10.16;rv:84.0)Gecko/20100101 Firefox/84.0”

并且保持一个无限循环,以firefox结尾说“这个站点没有正确重定向”

对于未应用.htaccess的任何其他文件夹,access.log显示正确的行为:

10.211.55.2--[14/Jan/2021:21:30:52+0100]“GET/folder2/HTTP/1.1”302 4230-“Mozilla/5.0(麦金塔;英特尔Mac OS X 10.16;rv:84.0)Gecko/20100101 Firefox/84.0”

浏览器将正确显示index.html

如何修复.htaccess以处理从index.php到index.html的重定向

您可以添加另一个异常,就像您对
.php
文件所做的那样。例如,在上述规则之后,但在重写到
index.php
之前:

RewriteRule ^folder1/index\.html$ - [L]
/folder1/index.html
的任何请求都不会进一步,因此不会根据下面的指令重写为
index.php
(因此不会发生重定向)

RewriteRule ^folder1/index\.html$ - [L]