我的iis7.5服务器上有一个文件(称为“log.html”),我希望我的PHP安装能够访问和写入,但我不希望任何人直接访问该文件,因为输入“http://computername/log.html”(我在局域网中)的示例。
如何阻止用户访问它但允许php查看呢?
使用下面建议的web.config文件时,我收到此错误:
答案 0 :(得分:1)
您可以使用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>
答案 1 :(得分:1)
我想我可能已回答了我自己的问题!我还需要再测试一下,如果它不能完全运行,那么有人可以纠正我:
<?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>
缓存控制位可防止浏览器缓存它返回的任何内容。
希望这有助于其他人!我对此仍然很陌生,所以你可以解决这个问题。