【问题标题】:.htaccess to restrict access by file type.htaccess 按文件类型限制访问
【发布时间】:2017-08-15 00:08:10
【问题描述】:

我对 .htaccess 文件没有太多经验,我想要一个禁止访问(403 Forbiden)文件夹及其所有子文件夹中的.myext 文件的文件。

谁能给我写一个快速的规则?

【问题讨论】:

    标签: http .htaccess


    【解决方案1】:

    您可以使用<FilesMatch>Deny

    <FilesMatch "\.myext$">
        Deny from all
    </FilesMatch>
    

    您可能还需要更改order of how Allow and Deny rules are applied

    另一种选择是使用mod_rewrite

    RewriteEngine on
    RewriteRule .+\.myext$ - [F]
    

    要将这些指令仅应用于特定目录,请将它们放入该特定目录的 .htaccess 文件中。使用 mod_rewrite 您还可以在规则模式中指定路径,例如:

    RewriteRule ^foo/bar/.+\.myext$ - [F]
    

    【讨论】:

    • 重写是通过mod_rewrite完成的,而FilesMatch包含在核心中(如果你不能/不会加载mod_rewrite):httpd.apache.org/docs/2.2/mod/core.html#filesmatch
    • 谢谢。我使用了 FilesMatch 方法。您也知道为什么服务器会忽略该规则吗?
    • @Alin Purcaru:忽略什么规则?
    • @Gumbo 忽略 FilesMatchDeny from all Directive (我现在知道我应该这样称呼它) 并允许访问 .myext 文件。我在 3 台服务器上进行了测试,但其中一台允许访问。他们都是阿帕奇。如果我不能更好地解释自己,我很抱歉,但我的服务器经验几乎是 0。
    • @Alin Purcaru:可能是 .htaccess 文件被忽略了。一些 Web 服务器只尊重文档根目录中的 .htaccess 文件,而不尊重其他文件(出于性能原因)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-03
    • 1970-01-01
    • 1970-01-01
    • 2011-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多