使用htaccess,如何限制查看目录内容,但允许服务器使用目录?

问题描述

| 更具体地说,我有一个htaccess文件,该文件可限制任何人查看目录内容。这样,没有人可以通过以下方式在www.example.com/images中看到我的数千张图像:
deny from all
allow from 127.0.0.1
但是,我想在www.example.com上使用这些图像,这样,
<img src=\"images/thisimg.jpg\" />
作品。 我希望我朝着正确的方向前进,但我感谢您的任何见解/重定向。这类似于:如何保护所有目录内容,但是可以访问PHP脚本,但是我想链接到该目录中的这些图像,并且使用
deny from all
不允许我这样做。 在此先感谢您的帮助。     

解决方法

        您只需要使该目录中的index.php或.html文件就可以使人们看不到目录内容。对yoursite.com/images的任何请求都将加载index.php,您将其设置为虚拟页面。 index.html可能类似于:
<html><title>Forbidden!</title><body>Nothing to see here...</body></html>
或重定向脚本index.php:
<?php header(\'Location: /index.php\'); exit(); ?>
不要使用.htaccess阻止目录列表,它会阻止对所有内容的访问。     ,        在.htaccess中
Options -Indexes
http://httpd.apache.org/docs/current/mod/core.html#options     ,        选项1(简单但不理想)- 您无需创建像这样的索引文件-
<html>
  <title>Forbidden!</title>
  <body>
    <h1>Access Denied !!</h1>
  </body>
</html>
,        最简单的解决方案:在图像文件夹中创建空白页名称
index.html
:)     ,        在.htaccess文件中使用以下内容:
 #
 ###################################################################
 ###                                                             ###
 ###                    Currently protection                     ###
 ###              images (jpg,jpeg,gif,png,bmp)              ###
 ###                       JavaScript (js)                       ###
 ###                Cascading Style Sheets (CSS)                 ###
 ###                                                             ###
 ###################################################################
 #
 <IfModule mod_rewrite.c>
 RewriteCond %{HTTP_REFERER} !^http://(www\\.)?mysite.com/.*$ [NC]
 RewriteCond %{HTTP_REFERER} !^http://(www\\.)?mysite.com$ [NC]
 RewriteRule .*\\.(jpg|jpeg|gif|png|bmp|js|css)$ http://access-                    denied.us/hotlinks.html [NC,L]
 </ifModule>
 #
这将使您的页面可以加载所需的文档和图像,同时阻止其他所有页面执行此操作。我在所有网站上都使用了它,效果很好。     ,        对我来说,我觉得最简单的方法就是重定向。在images目录中,只需创建一个索引页面,然后在索引页面中您就可以重定向到您的网站索引页面,即
<?php
   header( \'Location: http://www.yoursite.com\' ) ;
?>
这样,每当有人尝试直接访问图像页面时,他们最终都会进入您网站的根目录。     ,        如果是我,则只需确保引荐来源网址为www.example.com,这就是它的主要用途之一。     ,        Magicianeer的建议是解决此问题的最佳方法。如果您的图片分成多个子文件夹,则必须在每个文件夹中放置一个索引文件。 \'Options -Indexes \'只需在根目录执行一次。     ,        
deny from all
允许服务器端脚本使用文件,但限制完整的Web访问。     ,        在您要显示禁止访问的文件夹中 创建一个名称为index.php的文件并粘贴此代码
<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don\'t have permission to access This Folder
on this server.</p>
</body></html>
,        我使用了一个技巧,使人们认为他们已经访问了一个不存在的文件夹。 创建一个HTML文件并添加以下内容:
<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">
<html>
<head>
<title>404 Not Found</title>
</head>

<body>
<h1>Not Found</h1>
<p>The requested URL was not found on this server.</p>
<p>Additionally,a 404 Not Found
error was encountered while trying to use an ErrorDocument to handle the request.</p>

</body>
</html>