0

そのフォルダだけでファイル実行の特定の拡張子を無効にしたいサイトがあります。

例: www.yoursite.com/cache/test.php

実行しないでください。

私はこのコードを試しました:

<FilesMatch "\.(htaccess|htpasswd|ini|phps|fla|psd|log|sh|zip|exe|pl|jsp|asp|htm|sh|cgi|py|php)$">
  Order Allow,Deny
  Deny from all
</FilesMatch>

しかし、これによりサイトの機能が停止しました。

このルールをキャッシュフォルダー内に適用したいだけですが.htaccess、このフォルダーは定期的にクリアされるため、ファイルを内部に配置できません。

4

2 に答える 2

4

次の行をルート .htaccess ファイルに追加してみてください:

RewriteRule ^cache/.*\.(htaccess|htpasswd|ini|phps?|fla|psd|log|sh|zip|exe|pl|jsp|asp|htm|sh|cgi|py)$ - [F]

フラグにより​​、403 Forbidden Error が表示されます。

于 2012-08-14T10:31:34.293 に答える
3

あなたがしなければならないのは、.htaccessその特定のキャッシュフォルダ内にそのファイルを配置することです。

.htaccessファイルは、ディレクトリごとに構成を変更する方法を提供します。

Apache HTTPサーバーチュートリアル:.htaccessファイル

そのルールをWebサイトのルートのファイルに配置すると.htaccess、サイト全体でそれらのルールが有効になります。


.htaccessこのルールをそのキャッシュフォルダの外部から有効にする場合は、メインファイルでこのルールを試してみてください-

RewriteEngine On
RewriteRule ^cache/.*\.(htaccess|htpasswd|ini|...)$ /access_denied.php

ルールは、要求されたファイルが

  • URLはで始まりますcache/
  • リストされているファイル拡張子のいずれかが含まれています(パイプ文字で区切られています)

access_denied.phpこれらの条件がすべて満たされると、適切なエラーメッセージを表示できるスクリプトにその呼び出しが渡されます。

于 2012-08-14T10:09:49.980 に答える