.htaccess使用指南

来源:互联网 发布:淘宝网拍模特怎么入行 编辑:程序博客网 时间:2024/06/10 04:11
 

1.         判断你的主机是否允许.htaccess,最好的办法是上传你自己的.htaccess文件看看是否有用.

2.      Apache系统中的.htaccess文件(或者”分布式配置文件”提供了针对目录改变配置的方法,即,在一个特定的文档目录中放置一个包含一个或多个指令的文件,以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置.

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

4.         .htaccess必须以ASCII模式上传,最好将其权限设置为644创建一个.htaccess文档你只需要在文字编缉器(例如:写字板)将文档保存成名为:".htaccess"(包括引号)。如果这也不行,你需要将其先命名为其它名字(例如htaccess.txt),再将其上传到服务器上,之后直接使用FTP软件来重命名。

5.         配置.htaccess 自定义错误页:

l         语法格式为:ErrorDocument 错误代码 /目录名/文件名.扩展名

l         常用错误代码:400 - Bad request 错误请求
l         401 Authorization Required需要验证
l         403 Forbidden禁止  
l         404 Not Found找不到页面  
l         405 Method Not Allowed  
l         408 Request Timed Out  
l         411 Content Length Required  
l         412 Precondition Failed  
l         413 Request Entity Too Long  
l         414 Request URI Too Long  

l             415 Unsupported Media Type

l         500 Internal Server Error内部服务器错误

l         一般情况下,人们可以专门设立一个目录,例如errors放置这些页面。然后再.htaccess中,加入如下的指令:ErrorDocument 404 /errors/notfound.html

l                 ErrorDocument 500 /errors/internalerror.html

l         如果所需要提示的信息很少的话,不必专门制作页面,直接在指令中使用HTML号了,例如下面这个例子:ErrorDocument 401 “你没有权限访问该页面,请放弃!”

6.         配置.htaccess 停示显示目录列表有些时候,由于某种原因,你的目录里没有index文件,这意味着当有人在浏览器地址栏键入了该目录的路径,该目录下所有的文件都会显示出来,这会给你的网站留下安全隐患。为避免这种情况(而不必创建一堆的新index文件),你可以在你的.htaccess文档中键入以下命令,用以阻止目录列表的显示:         Options –Indexes

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

l         封禁一个IP地址deny from 000.000.000.000这里的000.000.000.000是被封禁的IP地址,封禁整个网段的地址。如你输入210.10.56.,则将封禁210.10.56.0210.10.56.255的所有IP地址。

l         允许一个IP地址访问网站:allow from 000.000.000.000你可以象封禁IP地址一样封禁整个网段。

l         如果你想阻止所有人访问该目录,则可以使用:deny from all不过这并不影响脚本程序使用这个目录下的文档。

8.         配置.htaccess 替换index索引文件:也许你不想一直使用index.htmindex.html作为目录的索引文件。举例来说,如果你的站点使用PHP文件,你可能会想使用 index.php来作为该目录的索引文档。当然也不必局限于“index”文档,如果你愿意,使用.htaccess你甚至能够设置 foofoo.balh来作为你的索引文档!
DirectoryIndex index.php foofoo.balh index.php3 messagebrd.pl index.html index.htm
这些互为替换的索引文件可以排成一个列表,服务器会从左至右进行寻找,检查哪个文档在真实的目录中存在。如果一个也找不到,它将会把目录列表显示出来(除非你已经关闭了显示目录文件列表)。

9.         配置.htaccess 重定向页面:

l         你也可以使用.htaccess重定向整个网站的目录。假如你的网站上有一个名为olddirectory的目录,并且你已经在一个新网站 http://www.w3sky.com/newdirectory/上建立了与上相同的文档,你可以将旧目录下所有的文件做一次重定向而不必一一声明:
Redirect /olddirectory http://www.w3sky.com/newdirectory
这样,任何指向到站点中/olddirectory目录的请求都将被重新指向新的站点,包括附加的额外URL信息。例如有人键入:
http://www.w3sky.com/olddirecotry/oldfiles/images/image.gif
请求将被重定向到:http://www.w3sky.com/newdirectory/oldfiles/images/image.gif

l         我们可能对网站进行重新规划,将文档进行了迁移,或者更改了目录。这时候,来自搜索引擎或者其他网站链接过来的访问就可能出错。这种情况下,可以通过如下指令来完成旧的URL自动转向到新的地址:Redirect /旧目录/旧文档名 新文档的地址。或者整个目录的转向:Redirect 旧目录 新目录

10.     .htaccess 防止盗链:如果不喜欢别人在他们的网页上连接自己的图片、文档的话,也可以通过htaccess的指令来做到。
RewriteEngine on
RewriteCond %{ HTTP_REFERER } !^$
RewriteCond %{ HTTP_REFERER } !^http://(www.)?w3sky.com/.*$ [NC]
RewriteRule .(gif  &line;jpg)$ - [F]
如果觉得让盗链者的页面开个天窗不好看,那可以用一张图片来代替:把第4行改成
RewriteRule .(gif  &line;jpg)$ http://www.w3sky.com/
替代图片文件名 [R,L]

11.     密码保护的.htaccess文件:
尽管有各种各样的.htaccess用法,但至今最流行的也可能是最有用的做法是将其用于网站目录可靠的密码保护。尽管JavaScrip等也能做到,但只有.htaccess具有完美的安全性(即访问者必须知晓密码才可以访问目录,并且绝无后门可走)。
AuthName "Section Name”
AuthType Basic
AuthUserFile /full/path/to/.htpasswd
Require valid-user
利用.htaccess将一个目录加上密码保护分两个步骤。第一步是在你的.htaccess文档里加上适当的几行代码,再将.htaccess文档放进你要保护的目录下:你可能需要根据你的网站情况修改一下上述内容中的一些部分,如用被保护部分的名字"Members Area",替换掉“Section Name” /full/parth/to/.htpasswd则应该替换为指向.htpasswd文件(后面详述该文档)的完整服务器路径。
目录的密码保护比.htaccess的其他功能要麻烦些,因为你必须同时创建一个包含用户名和密码的文档/full/path/to/.htpasswd,用于访问你的网站,相关信息(默认)位于一个名为.htpasswd的文档里。像.htaccess一样,.htpasswd也是一个没有文件名且具有8位扩展名的文档,可以放置在你网站里的任何地方(此时密码应加密),但建议你将其保存在网站Web根目录外,这样通过网络就无法访问到它了。
在使用.htaccess来设置目录的密码保护时,它包含了密码文件的路径。从安全考虑,有必要把.htaccess也保护起来,不让别人看到其中的内容。虽然可以用其他方式做到这点,比如文档的权限。不过,.htaccess本身也能做到,只需加入如下的指令:
order allow,deny
deny from all

12.     配置 .htaccess 输入用户名和密码::要利用.htaccess对某个目录下的文档设定访问用户和对应的密码,首先要做的是生成一个.htpasswd的文本文档,forge : y4E7Ec8e7EwV这里密码经过加密,用户可以自己找些工具将密码加密成.htaccess支持的编码。该文档最好不要放在www目录下,建议放在www根目录文档之外,这样更为安全些。直接访问加密网站目录时:http://username:password@www.w3sky.com/directory/

13.     ,.htaccess 文件使用小结:
*
启用.htaccess,需要修改httpd.conf,启用AllowOverride,并可以用AllowOverride限制特定命令的使用
*
如果需要使用.htaccess以外的其他文件名,可以用AccessFileName指令来改变。例如,需要使用.config ,则可以在服务器配置文件中按以下方法配置:AccessFileName .config
*
一般情况下,不应该使用. htaccess文件,除非你对主配置文件没有访问权限。有一种很常见的误解,认为用户认证只能通过.htaccess文件实现,其实并不是这样,把用户认证写在主配置文件中是完全可行的,而且是一种很好的方法。.htaccess文件应该被用在内容提供者需要针对特定目录改变服务器的配置而又没有 root权限的情况下。如果服务器管理员不愿意频繁修改配置,则可以允许用户通过.htaccess文件自己修改配置,尤其是ISP在同一个机器上运行了多个用户站点,而又希望用户可以自己改变配置的情况下。虽然如此,一般都应该尽可能地避免使用.htaccess文件。任何希望放在.htaccess文件中的配置,都可以放在主配置文件的<Directory>段中,而且更高效。避免使用.htaccess文件有两个主要原因,即性能和安全。

原创粉丝点击