IIS - 拒绝公共访问指定目录中的所有文件

时间:2015-12-03 11:40:37

标签: .htaccess iis-7 web-config

我需要将.htaccess文件转换为web.config以便在IIS 7.5上使用:

IndexIgnore */*
<Files *.php>
    Order Deny,Allow
    Deny from all
</Files>

这是为了通过在/core/.htaccess中找到文件来防止公共访问/ core目录中的任何文件。

应用程序仍然需要访问/ core目录中的php文件和其他资源。

我尝试了 hiddenSegments

<security>
    <requestFiltering>
        <hiddenSegments>
            <add segment="core"/>
        </hiddenSegments>
    </requestFiltering>
</security>

denyUrlSequences

<security>
    <requestFiltering>
        <denyUrlSequences>
            <add sequence="/core/" />
        </denyUrlSequences>
    </requestFiltering>
</security>

然而,这些会阻止管理面板运行,因为阻止了以下请求:

http://www.domain.com/admin/assets/core/admin.js

因为网址包含阻止序列核心

有人可以建议在允许管理面板运行的同时如何防止对/ core目录中的资源进行公共访问?

1 个答案:

答案 0 :(得分:1)

我已经通过将以下web.config放在应拒绝访问URL的目录中来实现解决方案:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <security>
      <requestFiltering>
        <!-- prevent url access to this and sub directories -->
        <denyUrlSequences>
          <add sequence="/" />
        </denyUrlSequences>
      </requestFiltering>
    </security>
  </system.webServer>
</configuration>