在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 上的此行为