.htaccess 中的特定行导致 403 而不是目录列表

.htaccess 中的特定行导致 403 而不是目录列表

在Wordpress安装中,.htaccess文件在访问子目录时会导致403错误foo(该子目录不是Wordpress安装的一部分,而是我后来创建的)。例如,我有以下树文件:

/www
 |-wp-content/
 |-[all the stuff for wordpress]
 |-.htaccess
 |-foo/
   |-.htaccess

更具体地说,导致错误的行www/.htaccess如下:

RedirectMatch 403 \.(cgi|asp|aspx|cfg|dll|exe|jsp|mdb|sql|ini|rar)$

为了克服这个问题,我创建了www/foo/.htaccess

RedirectMatch 200 \.(cgi|asp|aspx|cfg|dll|exe|jsp|mdb|sql|ini|rar)$

但我不明白为什么该行会影响foo.子目录的名称确实是foo(用于测试),并且目录除了.htaccess.

答案1

我假设您的 foo 目录中有一个与正则表达式匹配的文件。

\.(cgi|asp|aspx|cfg|dll|exe|jsp|mdb|sql|ini|rar)$将匹配以 a 结尾.并后跟列出的扩展名之一的任何内容。

因此,如果您的 foo 目录中有bar.cgi该路径,foo/bar.cgi则路径的末尾会触发匹配并阻止列出该目录。

展示柜regex101 上的此行为

相关内容