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.php中的每个文件和root目录...

Order Deny,Allow 
Deny from All

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

现在我只需要允许文件夹中的apple.jpg, date.jpg, berry.jpg& ......此外,我还需要允许文件夹中的所有内容......这样任何人都可以直接访问任何文件......我该怎么做。 ..??banana.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

我认为您可以像在我的网站中那样阻止类型文件。

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 回答