首 页 | 科技新闻 | 科学探索 | 技术学院 | 网络管理 | 企业专题 | 趋势报道 | 生命科学 | 创新企业
您现在的位置: 火爆网 > 科技 > 技术学院 > 网络时代 > 文章正文
htaccess介绍和使用方法
2007-12-15  来源:火爆科技  作者:tr.c

.htaccess文件是非常有用的,下面一篇介绍:

从本指南中,您可以学习到有关.htaccess文档及其功能,用以优化您的网站。尽管.htaccess只是一个文档,但它可以更改服务器的设置,允许您做许多不同的事情,最流行的功能是您可以创建自定义的“404 error”页面。.htaccess 并不难于应用,只是在一个text文档中添加几条简单的指令而已。

我的主机支持它吗?

这可能很难用简单的答案来回答。许多主机支持.htaccess但实际上并不会明确声明,许多其他类型的主机有能力但并不允许他们的用户使用. htaccess文档。作为一般性的规则,如果你的主机使用Unix或Linux系统,或任何版本的Apache网络服务器,它一般来说是支持. htaccess的,尽管你的主机服务器可能不允许你使用它。

你的主机是否允许.htaccess,很好的一个标志是它是否支持文件夹的密码保护。为此,他们将提供.htaccess支持(尽管少数情况下他们提供密码保护功能但不允许你使用.htaccess)。如果你不确定,最好的办法一是上传你自己的.htaccess文档看看是否有用,二是e-mail 给你的主机服务商询问。

我该怎么做?

你可能疑惑.htaccess到底能做些什么,或者你可能曾知道它的一些功能但并不真正了解你实际到底可以用它来做多少事情。

.htaccess可以做大量范围的事情,包括:文件夹密码保护、用户自动重新指向、自定义错误页面、变更你的文件扩展名、屏蔽特定的用户IP地址、只允许特定的IP地址、停止目录表以及使用其他文件作为index文件。

创建一个.htaccess文档

创建.htaccess文档也许会给你带来几个问题。写文档很容易,你只需要在文字编缉器(例如:写字板)里写下适当的代码。然后,你可能会遇到保存文档的困难,因为.htaccess是一个古怪的文件名(文档事实上没有文件名,只有一个由8个字母组成的扩展名),一些系统(例如windows 3.1)无法接受这样的文件名。在大多数的操作系统中,你需要做的是将文档保存成名为:

".htaccess"

如果这也不行,你需要将其命名为其他的名字(例如htaccess.txt),再将其上传到服务器上,此后你就可以利用FTP软件来重命名它了。

警告

在使用.htaccess之前,我必须给你一些警告。尽管在服务器上使用.htaccess绝对不太可能给你带来任何麻烦(如果有些东西错了,它只是没效用罢了),但如果你使用Microsoft FrontPage Extensions你就需要小心些。FrontPage Extensions使用了.htaccess,因此你不能编辑它,加入你自己的信息。如果你需要(并不推荐,但是可能)你应该先从服务器上下载. htaccess文档(如果存在),之后在前面加上你的代码。

自定义错误页

我想介绍的.htaccess第一个应用是自定义错误页面,这使得你可以拥有自己的、个性化的错误页面(例如找不到文件时),而不是你的服务商提供的错误页或没有任何页面。这会让你的网站在出错的时候看上去更加专业。你还可以利用脚本程序在发生错误的时候通知你(例如我使用Free Webmaster Help的PHP脚本程序,当找不到页面的时候自动e-mail给我)。

任何你知道代码的错误(像404找不到页面),你都可以将其变成自定义页面,要做的只是在.htaccess文件里加入以下一段:

ErrorDocument errornumber /file.html

例如,如果我的根目录下有一个nofound.html文档,我想使用它作为404 error的页面:

ErrorDocument 404 /notfound.html

如果文件不在网站的根目录下,你只需要把路径设置为:

ErrorDocument 500 /errorpages/500.html

以下是一些最常用的错误:

401 - Authorization Required
400 - Bad request
403 - Forbidden
500 - Internal Server Error
404 - Wrong page

这样,你要做的只是生成一个错误显示文档,然后把它们上传。

.htaccess 命令

上一部分中我已经将你引入了.htaccess以及它的一些有用的功能,在这一部分里,我将向您演示如何应用.htaccess文档去实现这些功能。

停示显示目录索引

有些时候,由于某种原因,你的目录里没有index文件,当然这样意味着如果有人在浏览器地址栏键入了该目录的路径,该目录下所有的文件都会显示出来,这造成了网站的安全威胁。

为了避免这种情况(而不必创建一堆的新index文档),你可以在你的.htaccess文档中键入以下命令,用以阻止目录索引的显示:

Options -Indexes
Deny/Allow Certian IP Addresses 阻止/允许特定的IP地址

有些情况下,你可能只想允许某些特定IP的用户可以访问你的网站(例如:只允许使用特定ISP的用户进入某个目录),或者你想拦截某些特定的IP地址(例如:将低级用户隔离于你的信息面版外)。当然,这只在你知道你想拦截的IP地址时才有用,然而现在网上的大多数用户都使用动态IP地址,所以这并不是限制使用的常用方法。

deny from 000.000.000.000

被拦截的IP地址则为000.000.000.000,如果你只指定其中1或2个代码组,你可以拦截整个区域的地址。

你可以使用以下命令允许一个IP地址的访问: 

allow from 000.000.000.000

被允许的IP地址则为000.000.000.000,如果你只指定其中1或2个代码组,你可以允许整个区域的地址。

如果你想阻止所有人访问该文件目录,你可以使用: deny from all

但这将仍然允许脚本程序使用这个目录下的文档。

Alternative Index Files 替代的index文档

也许你不想一直使用index.htm或index.html来作为目录的索引文档,例如你的站点使用PHP文档,你会想使用 index.php来作为该目录的索引文档。当然也不必局限于“index”文档,如果你愿意,你尽管使用foofoo.balh来作为你的索引文档!

替代的索引文档可以排成一个列表,服务器会从左至右进行寻找,看看哪个文档在真实的目录中存在。如果一个也找不到,它将会把目录清单显示出来(当然除非你关闭了显示目录文件清单)。

DirectoryIndex index.php index.php3 messagebrd.pl index.html index.htm

.htaccess其中一个极其有用的功能,就是将请求重新指向站内或站外的不同文档。当你改变了一个文档名称时但仍然想让用户仍然可以用旧链接找到它,这个时候此功能将变得极其有用。另一个应用(我发现的很有用的)是重新指向一个长URL,例如在我的时事信息中,我可以使用一个很简短的URL来指向我的联合链接。以下是一个重新指向特定文档的例子:

Redirect /location/from/root/file.ext http://www.othersite.com/new/file/location.xyz

上述的例子中,访问在root目录下的名为oldfile.html可以键入:

/oldfile.html

访问一个旧次级目录中的文件可以键入:

/old/oldfile.html

你也可以使用.htaccess将整个网站的目录都做重新指向,假如你的网站上有一个名为olddirectory的目录,并且你已经在一个新网站 http://www.newsite.com/newdirectory/上建立了与上相同的文档,你可以将旧目录下所有的文件做一次重新指向而不必一一声明:

Redirect /olddirectory http://www.newsite.com/newdirectory

这样,任何指向到站点中/olddirectory的请求都将被重新指向新的站点,包括附加的额外URL信息。例如有人键入:

如果正确使用,本功能将极其强大。

密码保护

尽管有各种各样的.htaccess用法,但至今最流行的也可能是最有用的做法是将其用于网站目录的可靠的密码保护。尽管JavaScrip等也能做到,但只有.htaccess具有完美的安全(即访问者必须知晓密码才可以访问目录,并且绝无“后门”可走)。

利用.htaccess将一个目录加上密码保护分两个步骤。第一步是在你的.htaccess文档里加上适当的几行代码,再将.htaccess文档放进你要保护的目录下:

AuthName "Section Name"
AuthType Basic
AuthUserFile /full/path/to/.htpasswd
Require valid-user

有几个小部分你可能需要根据你的网站情况而修改一下。用被保护部分的名字替换掉”Section Name”,例如"Members Area"。

另外/full/parth/to/.htpasswd 应该替换为指向.htpasswd文档(后面详述该文档)的完整服务器路径。如果你不知道你网站空间的完整路径,询问一下你的系统管理员。 

The .htpasswd

目录的密码保护比.htaccess的其他功能要麻烦些,因为你必须同时创建一个包含用户名和密码的文档,用于访问你的网站,相关信息(默认)应位于一个名为.htpasswd的文档里,像.htaccess一样,.htpasswd也是一个没有文件名且具有8位扩展名的文档,可以放置在你网站里的任何地方(此时密码应加密),但建议你将其保存在网站根目录外,这样通过网络就无法访问到它了。

Entering Usernames And Passwords 输入用户名和密码

创建好.htpasswd文档后(可以通过文字编辑器创建),下一步是输入用于访问网站的用户名和密码,应为:

username:password

“password”的位置应该是加密过的密码。你可以通过几种方法来得到加密过的密码:一是使用一个网上提供的permade脚本或自己写一个;另一个很不错的username/password加密服务是通过KxS网站,这里允许你输入用户名及密码,然后生成正确格式的密码。

对于多用户,你只需要在.htpasswd文档中新增同样格式的一行即可。另外还有一些免费的脚本程序可以方便地管理.htpasswd文档,可以自动新增/移除用户等。

当你试图访问被.htaccess密码保护的目录时,你的浏览器会弹出标准的username/password对话窗口。如果你不喜欢这种方式,有些脚本程序可以允许你在页面内嵌入username/password输入框来进行认证,你也可以在浏览器的URL框内以以下方式输入用户名和密码(未加密的):

http://username:password@www.website.com/directory/

小结

.htaccess是一个站点管理员可以应用的一个强大的工具,有更多的变化以适应不同的用途,可以节约时间及提高网站的安全性。


火爆网编辑:tr.c 查看和发表评论
>> 与《htaccess介绍和使用方法》相关的文章
没有相关文章
我也说两句    
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用火爆网服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  • 姓 名: * 评 分: 1分 2分 3分 4分 5分
    内 容:
     
    十招让网站销售翻倍
    因为从事网络行业的缘故,一直以来都喜欢在艾瑞网里学习经验,也就一超级潜水员,这不手痒了,也新注册了个……
    阅读排行
    ·linux Emacs编辑器进·linux编程gcc篇之ma
    ·十个本年最炫的WebO·常用的DOS命令介绍(
    ·Linux From Scratch·Liunx文件系统基本目
    ·linux教程之文件系统·网络工程师学习笔记
    ·常用的DOS命令介绍(·xoops本地调试wamp的
    热点排行
    ·linux入门常用命令(·常用的DOS命令介绍(
    ·windows2003自带邮件·常用的DOS命令介绍(
    ·Grub menu.lst文件的·XML问与答
    ·Linux From Scratch·xoops本地调试wamp的
    ·开源建站系统,xoop·linux教程之文件系统
    体育推荐
    ·李玮峰转会三大猜想·国奥队将接受魔鬼训
    ·美国主帅不屑中国国·奥运门票第二阶段销
    ·中国奥运军团十大型·杜伊称崔鹏下期集训
    ·奥运夺冠经典动作·自行车世界杯今开赛
    ·国奥训练再让杜伊惊·国脚博客透露军训细
    娱乐推荐
    ·明星幕后睡姿照片大曝·陈奕迅录歌翻脸发脾气
    ·赵本山为父办葬礼悲痛·那英送老公孟桐上下班
    ·18时<投名状>与您相约·赵本山痛失老父春晚只
    ·贝克汉姆卖内裤秀腹肌·赵本山父亲11日19点病
    ·蔡少芬将嫁内地武打小·某报爆洪金宝死讯疑造