Apache 理解htaccess文件匹配代码
我正在尝试将drupal安装到bluehost托管网站的子目录中 这是一个巨大的痛苦 我认为.htaccess中的以下几行是问题所在。当我当前导航到mysite.com/subdir/install.php时,我得到一个403错误。然而,当我从下面几行中去掉“deny”时,我就不再得到那个错误了,所以我怀疑这一行造成了所有的麻烦 我的问题是,有人能帮我理解下面代码中发生了什么吗?特别是如果你能把它按组件分解Apache 理解htaccess文件匹配代码,apache,.htaccess,drupal,http-status-code-403,subdirectory,Apache,.htaccess,Drupal,Http Status Code 403,Subdirectory,我正在尝试将drupal安装到bluehost托管网站的子目录中 这是一个巨大的痛苦 我认为.htaccess中的以下几行是问题所在。当我当前导航到mysite.com/subdir/install.php时,我得到一个403错误。然而,当我从下面几行中去掉“deny”时,我就不再得到那个错误了,所以我怀疑这一行造成了所有的麻烦 我的问题是,有人能帮我理解下面代码中发生了什么吗?特别是如果你能把它按组件分解 <FilesMatch "\.(engine|inc|info|install|m
<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>
命令允许,拒绝
filematch
允许您使用正则表达式匹配文件
在上面的FilesMatch
中,您有4组正则表达式,其中1组有一个辅助可选集
基本上,它所做的是禁止访问(错误403)在正则表达式集上描述的任何文件
例如:
\.(engine|inc ...)$|
表示文件以.engine或.inc结尾,或。。。规则的其余部分,拒绝访问它
然后在第一组规则的末尾有一个|
,与上面的示例类似,代表或
,因此如果第一组规则不匹配,它将启动第二组规则,这略有不同
^(\..*|Entries.*|Repository)$
在这里,它的作用正好相反,如果文件以给定的关键字开始和结束,它就会匹配,例如:
\.(engine|inc ...)$|
如果文件以
开头,后跟任何内容(*
)表示任何其他内容,例如.htaccess
或以条目开头,后跟任何内容,或完全是存储库或。。。直到最后
然后下一条规则是^..*$
,这条规则意味着文件以.
开头和结尾,就像它的字面意思一样
最后一组规则与第一组规则相同,用于验证文件是否以给定的扩展名结尾
如果你想知道更多,我建议你了解更多