作为网站管理员,我们不希望存放在服务器上的某些文件夹内的文件的被未经授权访问者获取,所以我们需要一个有效的方法来限制某些文件夹的访问。也许你会问:常见的用php或其它语言编写的网站前台用户注册和登录系统不是已经限制用户可以进入哪些页面和使用什么功能吗?但是,这一类的认证机制只对这些语言编写出的文件有效(而且前提是你已把认证的代码嵌入该文件),但这一类认证机制并不能保护你网站上的图片、文档以及其它类型文件不被他人获取,访问者或黑客还是可以通过url直接获取到你存放在某个文件夹内的文件。

     有什么简单的方法可以让我们灵活地控制文件夹的访问呢?有个方法很简单,通过Apache的.htaccess和.htpasswd给文件夹加上用户密码认证就可以了。操作起来还很简单呢,因为apache服务器已经提供了丰富的认证支持,我们只需要制作两个文件.htaccess和.htpasswd(注意前面带有一个点)。

    注意:由于.htaccess文件名结构较特别,在Windows系统内无法创建文件名为.htaccess的文件(Windows Vista和Windows 7是可以创建这种文件名的,但是这之前的系统应该是不可以的),唯有的办法是在文本编辑器中写好.htaccess文件内容,保存,上传(ASCII传输方式)至站点服务器,然后在FTP中重命名上传文件为.htaccess即可。

.htaccess文件

AuthType Basic
AuthName "restricted area"
AuthUserFile /usr/virtual/default/www.x2009.net/conf/.htpasswd
require valid-user
第一行的AuthType指的是采用的认证方式,在这里我们选择的是一般的Basic,要注意的是,Basic认证方式传输密码过程是不加密的,更安全的方式是Digest,但Digest认证方式需要mod_auth_digest模块的支持,使用前最好先通过检查一下服务器是否已经开启该模块;第二行的AuthName记录的认证名称,会显示在认证询问框上,如果存在多个认证,认证名称可以让你更清楚当前认证该输入什么用户名和密码,遗憾的是认证名称似乎不支持中文;第三行,输入存放用户密码的认证文件路径。

.htpasswd文件

outwego.com:123456
outwego.net:654321
outwego:12tir.zIbWQ3c
在.htpasswd文件我们记录下授权用户的账号名和密码,冒号前的是账号名,冒号后的则是密码,一行记录一条授权用户信息,不要多,如果你不想密码明文显示出来,可以用MD5加密一下,网上有这样的工具,第三行代码就是密码123456加密后的效果。
test.php

<?php phpinfo(); ?>
最后,我们来测试一下,在网站根目录新建一个文件夹名字为webalizer把做好的两个文件上传并同一个测试文件test.php放入该文件夹,比如我的网站是www.x2009.net那么输入这个网址访问以下http://www.x2009.net/webalizer,看,这时是否会弹出一个认证询问框呢?输入相应帐户名和密码,你就可以看到服务器的配置情况了。如果浏览器出现500错误,很可能是AuthUserFile路径设置不正确导致。

注意:.htpasswd文件可以放在任意一个文件夹,只要在.htaccess里设置相应的位置就可以了,然后你要保护哪个文件夹,就把.htaccess放在那个文件夹就好了,以后任何人访问那个网址都会被询问用户名和密码,http://www.x2009.net/webalizer是一个演示,长期有效,你可以尝试访问看效果。

 » 订阅本站:http://feed.x2009.net

您可能会对以下内容有兴趣:

  1. 发现谷歌搜索(Google)的一个小小的bug 今天在使用谷歌搜索(Google)的时候,发现一个小小的bug,没有什么大的影响,只是提示上的错误,我在 Google搜索“x2009.net”,翻到第二页,我看到提示“获得 2 条结果,以下是第 27 页 (用时 0.24 秒)”,看清楚了,应该是“获得27条结果,以下是第二页”,想不到Google的工程师和我一样不细心,犯了一个小小的毛病,已经提交给Google了,可能再次搜索的时候就不会有了,留下出现这个问题的网址...
  2. 如何改变IE浏览器的首页,以及首页设置变成灰色锁定,标题栏修复 问:     请问如何修改IE浏览器的首页设置?新装的系统,还不太会设置. 答: 常规方法     打开IE浏览器,如果你的是IE7,请先按一下Alt键,就会出现菜单栏,然后点”工具”菜单,然后点”Internet 属性”.将首页的文字输入框里的内容设置为您需要设置的地址,比如www.x2009.net 如果以上方法无效,请尝试以下方法. 注册表的修改方法...
  3. 网站迁移一周的状况,301永久重定向似乎没什么作用 网站迁移一周时间了 迁移后的网站流量只有迁移前一周的1/5 为了让新域名更加被重视,我自己增加不少外链(至少数百个)。 前面的几天所有流量都来自老域名跳转过来的 接下来的最近这两天从搜索引擎来的浏览不到1/10(老域名也不来搜索引擎流量了,但是新域名内容全部被谷歌收录了,可是没流量) 经过一周的确认。301永久重定向简直是忽悠人啊…… 有经验的来讨论下,看看我这情况是不是很常见。还是我RP问题…… ---------------------忧郁的分割线 我做了的操作如下 1.更换域名,修改wp数据库内容里的老域名为新域名...
  4. IIS网址重写插件IIRF(Ionic's Isapi Rewrite Filter)的介绍和使用方法 介绍 IIRF(Ionic's Isapi Rewrite Filter)是一款开源的重写URL过滤器,类似于Apache的URL重写,基于VC8.0(可以用Visual Studio2005或Visual C++ 2005 Express重新编译)开发。它可以运行在IIS5.0至IIS7.0,支持ASP,ASP.NET(ASPX),PHP等许多格式。相对比ASP.NET2.0自带的URL重写,具有更好的性能和许多我们所需要特性,重要的一点在于:它可以支持无扩展名的URL(例如:www.x2009.net/****,你无需在创建一个默认的default.aspx文件,IIRF自动会帮你解析),让URL更加的方便我们记忆,也能进一步提高搜索的排名?IIRF能够在aspnet_isapi提前捕获我们所请求的URL进行处理,如果我们访问www.x2009.net/a.aspx,需要获取www.x2009.net/a.htm,步骤需要(iis-aspnet_isapi),通过IIRF,我们可以直接跳aspnet_isapi.dll,直接访问a.htm,要知道,这种方式在ASP.NET是无法实现的。 IIRF跟ASP.NET重写URL一样,它也是基于正则的方式来匹配,具有LOG记录,请求的条件判断。还是进入正题吧。...
  5. 网站迁移成功     国内形势严峻,做个站不容易啊,又是这又是那,不得不为了自由而逃离了,这个域名尝试了备案,但是要求寄送资料,如此麻烦,也就放弃了。即便拿到备案又如何?真的安全了吗?大错特错,我的cn就是有备案的,但是谁知道下一次会是如何呢,所以还是完全脱离出来吧,     其实迁移网站很容易,我这网站是wordpress的,只要用phpMyAdmin导出数据库,然后用编辑器批量修改一下内容,比如我的,只需要将老域名替换成www.x2009.net,然后导入回数据库,就可以了。接着更改一下网站绑定。一切就OK了。   当然,为了老用户能访问,为了搜索引擎知道我们更换了域名。只需要在原来的网站目录放个.htaccess文件(如果老网站和新网站的文件夹是同一个,也可行),内容如下,那么通过老域名访问的用户也会切换过来。包括搜索引擎也知道,我们永久性迁移了网站…… RewriteEngine On RewriteCond %{HTTP_HOST} !^www.x2009.net$  [NC]...