.htaccess:使用特定的文件和目录

时间:2012-11-12 06:26:40

标签: .htaccess

我有一个像下面的文件树......

.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.jpgdate.jpgberry.jpg&amp;来自banana.jpg文件夹的images ...此外,我还需要允许file文件夹中的所有内容...以便任何人都可以直接访问来自{{1}的任何文件} 001.txt ...我怎么能这样做...... ??

我不想使用多个.htaccess文件

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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更改域名并更改类型文件,您可以在代码中看到这将有助于您: - )