0

以下のようなファイルツリーがあります...

.htaccess
index.php
includes
   css
   js
   xml
   images
      apple.jpg
      orange.jpg
      date.jpg
      berry.jpg
      .
      .
      .
      waterlemon.jpg
      banana.jpg
   file
      001.txt
      002.txt
      003.txt
      .
      .
      .
      100.txt

以下のコードを使用して、ディレクトリを除くすべてのファイルとディレクトリ.htaccessブロックしています...index.phproot

Order Deny,Allow 
Deny from All

<Files "index.php">
    Order Deny,Allow
    allow from all
</Files>

今、私はフォルダーから、、、およびのみを許可する必要があります...さらにapple.jpg、フォルダーからのすべてを許可する必要もあります...誰でもからの任意のファイルに直接アクセスできるように...どうすればそれを行うことができますか. ..??date.jpgberry.jpgbanana.jpgimagesfile001.txt100.txt

複数の .htaccess ファイルを使用したくない

4

2 に答える 2

3
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/index\.php$
RewriteCond %{REQUEST_URI} !^/file/(.+)
RewriteCond %{REQUEST_URI} !^/includes/images/(apple|date|berry|banana)\.jpg$
RewriteRule (.*) - [F]

このコードは、次へのアクセスのみを許可します。

  • (apple.jpg、date.jpg、berry.jpg、banana.jpg) /includes/images/フォルダーから。
  • あなたのindex.phpファイル。
  • ディレクトリの任意のファイル/file/

そうしないと、他のファイルへのアクセスが禁止され、403 Forbiddenエラーが発生します。

PS: .htaccess ファイルに以下のコードは必要ありません。

Order Deny,Allow 
Deny from All

<Files "index.php">
    Order Deny,Allow
    allow from all
</Files>
于 2012-11-12T15:33:57.040 に答える
0

私の Web サイトで行っているように、タイプ ファイルをブロックできると思います。

RewriteEngine on
Rewritecond %{HTTP_HOST} !^www\.mydomain\.com
RewriteRule (.*) //www.mydomain.com/$1 [R=301,L]
RewriteRule \.(sql)$ - [F]
RewriteRule \.(txt)$ - [F]
RewriteRule \.(zip)$ - [F]
RewriteRule \.(rar)$ - [F]

この行をhtaccessに追加して、ドメイン名を変更し、コードでわかるようにタイプファイルを変更します:-)

于 2012-11-12T08:20:56.870 に答える