PHPインストールでアクセスして書き込みできるようにしたいファイル(「log.html」と呼ばれる)がiis7.5サーバーにありますが、たとえば入力するなど、誰にもファイルに直接アクセスさせたくありません。 ' http://computername/log.html '(私はLAN上にいます)。
ユーザーがアクセスできないようにして、phpに表示させるにはどうすればよいですか?
以下に提案されているweb.configファイルを使用すると、次のエラーが発生します。
PHPインストールでアクセスして書き込みできるようにしたいファイル(「log.html」と呼ばれる)がiis7.5サーバーにありますが、たとえば入力するなど、誰にもファイルに直接アクセスさせたくありません。 ' http://computername/log.html '(私はLAN上にいます)。
ユーザーがアクセスできないようにして、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>
キャッシュ制御ビットは、ブラウザが返したものをキャッシュするのを防ぎます。
これが他の誰かに役立つことを願っています!私はまだこれに非常に慣れていないので、あなたはこれを回避することができるかもしれません。