Windows 仅允许脚本访问文件iis7.5

Windows 仅允许脚本访问文件iis7.5,windows,iis,iis-7.5,file-permissions,Windows,Iis,Iis 7.5,File Permissions,我在iis7.5服务器上有一个文件(称为“log.html”),我希望我的PHP安装能够访问和写入该文件,但我不希望任何人直接访问该文件,例如键入“”(我在局域网上) 如何防止用户访问它,但允许php查看它 使用下面建议的web.config文件时,我遇到以下错误: 您可以使用IIS URL重写并创建请求阻止规则,以防止通过HTTP进行访问: 例如: <?xml version="1.0" encoding="UTF-8"?> <configuration> <

我在iis7.5服务器上有一个文件(称为“log.html”),我希望我的PHP安装能够访问和写入该文件,但我不希望任何人直接访问该文件,例如键入“”(我在局域网上)

如何防止用户访问它,但允许php查看它

使用下面建议的web.config文件时,我遇到以下错误:

您可以使用IIS URL重写并创建请求阻止规则,以防止通过HTTP进行访问:

例如:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="BlockLogFile" 
              patternSyntax="Wildcard" 
              stopProcessing="true">
          <match url="*" />
          <conditions>
            <add input="{URL}" pattern="/log.html" />
          </conditions>
          <action type="CustomResponse" 
                  statusCode="403" 
                  statusReason="Forbidden: Access is denied." 
                  statusDescription="This is sekret!" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

我想我可能已经回答了我自己的问题!我还需要对它进行更多的测试,如果它不能完全工作,也许有人可以纠正我:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <httpProtocol>
            <customHeaders>
                <add name="cache-control" value="no-store, no-cache, must-revalidate, max-age=0" />
            </customHeaders>
        </httpProtocol>
        <staticContent>
            <clientCache cacheControlMode="DisableCache" />
        </staticContent>
        <security>
            <requestFiltering>
                <denyUrlSequences>
                    <add sequence="log.html" />
                </denyUrlSequences>
            </requestFiltering>
        </security> 
    </system.webServer>
</configuration>

缓存控制位阻止浏览器缓存它返回的任何内容


希望这对其他人有帮助!我对这一点还是很陌生,所以您可能可以绕开它。

出于某种原因,当我使用您的web.config示例时,我收到一个内部服务器错误(500.19),告诉我读取web.config文件时出现问题…@starbeamrainbowlabs-抱歉,从未注意到您的答复。配置示例是直接从我测试的服务器复制的。你能发布500.19页面的截图吗,通常信息量很大。是的,我能,但我如何在stackoverflow上显示它?@starbeamrainbowlabs编辑器提供了一个图像上传按钮。如果你不能让它工作,那么你能上传到一个外部图像主机(imgur、imageshack或任何地方),提供一个链接,我会为你导入它。@starbeamrainbowlabs-我想你是因为没有安装IIS7 URL重写模块而出错的。我应该在服务器故障时问这个问题吗?