.htaccess 基础教程(二)

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

你所知道的任何页面错误代码(像404找不到页面),均可以经过在.htaccess文件里加入下面的文字将其变成自定义页面:html

ErrorDocument errornumber /file.html   //errornumber 像404等浏览器

举例来讲,若是个人根目录下有一个nofound.html文件,我想使用它做为404 错误的页面:ErrorDocument 404 /notfound.html。若是文件不在网站的根目录下,你只须要把路径设置为:ErrorDocument 500 /500错误页面的路径/500.html安全

如下是一些经常使用的客户端请求错误返回代码:服务器

400 – Bad request 错误请求
401 Authorization Required须要验证
403 Forbidden禁止
404 Not Found找不到页面
405 Method Not Allowed
408 Request Timed Out
411 Content Length Required
412 Precondition Failed
413 Request Entity Too Long
414 Request URI Too Long
415 Unsupported Media Type网站

常见的服务器错误返回代码:ui

500 Internal Server Error内部服务器错误搜索引擎

用户能够利用.htaccess指定本身事先制做好的错误提醒页面。通常状况下,人们能够专门设立一个目录,例如统一放置在errors目录下。而后再.htaccess中,加入以下的指令:spa

ErrorDocument 404 /errors/notfound.html
ErrorDocument 500 /errors/internalerror.htmlhtm

一条指令一行。上述第一条指令的意思是对于404,也就是没有找到所须要的文档的时候得显示页面为/errors/notfound.html页面。

不难看出语法格式为:ErrorDocument 错误代码 /目录名/文件名.扩展名。

固然,若是所须要提示的信息不多的话,没必要专门制做页面,直接在.htaccess文件指令中使用HTML写就能够了,例以下面这个例子:

ErrorDocument 401 “你没有权限访问该页面,请放弃!”

二、配置.htaccess 停示显示目录列表

有些时候,因为某种缘由,你的目录里没有index文件,这意味着当有人在浏览器地址栏键入了该目录的路径,该目录下全部的文件都会显示出来(也就是列目录),这可能给你的网站留下安全隐患。为避免这种状况(而没必要建立一堆的新index文件),你能够在你的.htaccess文档中键入如下命令,用以阻止目录列表的显示:

Options -Indexes

三、配置.htaccess 阻止/容许特定的IP地址

某些状况下,你可能只想容许某些特定IP的用户能够访问你的网站(例如:只容许使用特定ISP的用户进入某个目录),或者想封禁某些特定的IP地址(例如:将低级用户隔离于你的信息版面外)。固然,这只在你知道你想拦截的IP地址时才有用,然而如今网上的大多数用户都使用动态IP地址,因此这并非限制使用的经常使用方法。

你可使用如下命令封禁一个IP地址:deny from 000.000.000.000

这里的000.000.000.000是被封禁的IP地址,若是你只指明了其中的几个,则能够封禁整个网段的地址。如你输入210.10.56.,则将封禁210.10.56.0~210.10.56.255的全部IP地址。

你可使用如下命令容许一个IP地址访问网站:allow from 000.000.000.000

被容许的IP地址则为000.000.000.000,你能够象封禁IP地址同样封禁整个网段。

四、配置.htaccess 替换index文件

改变缺省的首页文件。通常状况下缺省的首页文件名有default、index等。不过,有些时候目录中没有缺省文件,而是某个特定的文件名,好比在123目录中是 123.php作首页文件。这种状况下,要用户记住文件名来访问很麻烦。在.htaccess中能够轻易的设置新的缺省文件名:

DirectoryIndex 新的缺省文件名

也能够列出多个,顺序代表它们之间的优先级别,例如:

DirectoryIndex filename.html index.cgi index.pl default.htm

也许你不想一直使用index.htm或index.html做为目录的索引文件。举例来讲,若是你的站点使用PHP文件,你可能会想使用 index.php来做为该目录的索引文档。固然也没必要局限于“index”文档,若是你愿意,使用.htaccess你甚至可以设置 foofoo.balh来做为你的索引文档!

这些互为替换的索引文件能够排成一个列表,服务器会从左至右进行寻找,检查哪一个文档在真实的目录中存在。若是一个也找不到,它将会把目录列表显示出来(若是你没有关闭显示目录的权限)。

五、配置.htaccess 重定向页面

.htaccess最有用的功能之一就是将请求重定向到同站内或站外的不一样文档。这在你改变了一个文件名称,但仍然想让用户用旧地址访问到它时,变的极为有用。你也可使用.htaccess重定向整个网站的目录。假如你的网站上有一个名为olddirectory的目录,而且你已经在一个新网站  http://www.site.com/newdirectory/上创建了与上相同的文档,你能够将旧目录下全部的文件作一次重定向而没必要一一声明:

Redirect /olddirectory?    http://www.site.com/newdirectory/

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

http://www.site.com/olddirectory/oldfiles/images/image.gif

请求将被重定向到:

http://www.site.com/newdirectory/oldfiles/images/image.gif

可见,若是正确使用,此功能将极其强大。

咱们可能对网站进行从新规划,将文档进行了迁移,或者更改了目录。这时候,来自搜索引擎或者其余网站连接过来的访问就可能出错。这种状况下,能够经过以下指令来完成旧的URL自动转向到新的地址:

Redirect /旧目录/旧文档名  新文档的地址

相关文章
相关标签/搜索