gpt4 book ai didi

apache - 了解 htaccess 文件匹配代码

转载 作者:行者123 更新时间:2023-12-02 03:19:14 25 4
gpt4 key购买 nike

我正在尝试将 drupal 安装在我的 bluehost 托管网站的子目录中...

这是一个巨大的痛苦

我认为 .htaccess 中的以下几行是问题所在。当我当前导航到 mysite.com/subdir/install.php 时,出现 403 错误。但是,当我从下面的行中取出“deny”时,我不再收到该错误,因此我怀疑这一行造成了所有麻烦。

我的问题是,有人可以帮助我理解以下代码中发生的情况吗?特别是如果你可以按组件分解它。

<FilesMatch "\.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)(|~|\.sw[op]|\.bak|\.orig|\.save)?$|^(\..*|Entries.*|Repository|Root|Tag|Template)$|^#.*#$|\.php(~|\.sw[op]|\.bak|\.orig\.save)$">
Order allow,deny
</FilesMatch>

最佳答案

FilesMatch 允许您使用正则表达式来匹配文件。

在上面的 FilesMatch 上,您有 4 组正则表达式,其中 1 组有一个辅助可选集。

基本上,它所做的就是禁止访问(错误 403)对您的正则表达式组中描述的任何找到的文件。

例如:

\.(engine|inc ...)$|

表示如果文件以 .engine 或 .inc 或 ... 规则的其余部分结尾,则拒绝对其进行访问。

然后在第一组规则的末尾有一个 | ,就像上面的示例一样,代表 OR 所以如果第一组规则不匹配,它开始第二个,略有不同。

^(\..*|Entries.*|Repository)$

这里它执行相反的操作,如果文件以给定关键字开头和结尾,则它会匹配,例如:

如果文件以 . 开头,后跟任何内容 (.*) 则表示任何其他内容,例如 .htaccess 或以 开头条目后跟任何内容或恰好是存储库或...直到最后。

然后是下一个规则^#.*#$,这意味着文件以#开始和结束,作为其处理的#从字面上看

最后一组规则与第一个验证文件是否以给定扩展名结尾的规则相同。

如果您想了解更多,那么我建议您了解更多关于 Perl Compatible Regular Expressions (PCRE)

关于apache - 了解 htaccess 文件匹配代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18676012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com