问题描述
|
更具体地说,我有一个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>