URL重定向之二.htaccess文件内容解析和rewrite规则

来源:互联网 发布:中文地址匹配算法 编辑:程序博客网 时间:2024/06/04 08:50
.htaccess可以做大量的事情,包括:文件夹密码保护、用户自动重定向、自定义错误页面、改变你的文件扩展名、封禁特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表,以及使用其他文件作为index文件。
创建.htaccess文件
创建.htaccess文件最好使用ue Notepad++ 等专业的编辑器。如果使用window的记事本写可能会出现编码上的错误,文件写完后在window系统上可能不支持直接保存为 .htaccess文件(它事实上没有文件名,只有一个由8个字母组成的扩展名),你可以将文件保存为“.htaccess”的文件名,如果还不行可以先随便保存一个文件名,然后上传到服务器上用ftp工具重命名。
也可以直接从网站上生成.htaccess 文件  网址为http://www.wangqu.org/htaccess/

配置自定义的错误页面。
.htaccess 文件最常用的功能之一就是配置404 未找到文件页面。当访问一个url路径是,如果rul为一个目录,服务器接受地址会自动查找并返回默认缺省是首页文件,如index.php、index.html等等,如果目录中没有找到缺省的首页文件,则会返回文件夹里的文件列表(必须开启目录浏览的情况下)或直接返回一个404未找到文件错误,如果url结尾是一个文件,当服务器为找到该文件是直接返回一个404错误了,这对浏览者的体验和搜索引擎的抓取是不利的,所以我们要改变一下配置文件,当服务器返回一个404错误时,我们把404错误修改为一个自己制作的提醒类的文件返回,这个文件里也可以包含连接,这样对用户和搜索引擎有很好的体验。
配置的格式为:
ErrorDocument  errornumber  /url/file.html
举例,如果网站跟目录有个文件夹error/文件夹里放着是网站错误的文件。其中有个404.html文件,我想使用它作为404 error 的页面。格式为:
ErrorDocument 404 /error/404.html
不难看出语法格式为:
ErrorDocument 错误代码 /目录名/文件名.扩展名
常见的客户端返回码及其含义
400 错误的请求
401 认证错误
402 需要付费
403 禁止访问
404 未找到
405 方法不允许
406 不可接受
407 需要代理认证
408 请求超时
常见的客服务器返回码及其含义:
500 内部服务器错误

改变缺省的Index页面
你可以把缺省的 index.html, index.php 或 index.htm 改成其它页面。
DirectoryIndex business.html 
可以列出多个,顺序表明它们之间的优先级别
DirectoryIndex business.html index.php index.html

禁止目录浏览
由于URLwie目录结尾且网站的该目录里没有缺省的首页,这时服务器会返回这个目录下文件的列表。这会给网站留下隐患,
缺省禁止服务器对外显示目录结构,反之亦然。
# 禁止目录浏览 
Options All -Indexes 
# 开放目录浏览
Options All +Indexes 

重命名htaccess 文件
你可以通过重命名htaccess文件来对其进行保护。
AccessFileName htacc.ess

控制用户访问,阻止/允许特定的ip访问
封禁一个ip地址
deny from 1.5.48.5
封禁一个ip地址段 封禁的是1.5.48.0~1.5.48.255
deny from 1.5.48.
封禁所有用户
deny from all
允许和封禁相反,吧deny 改为allow即为允许
allow from 1.5.48.
allow from 1.5.48.2
allow from all

重定向一个页面
.htaccess最有用的功能之一就是将请求重定向到同站内或站外的不同文档。这在你改变了一个文件名称,但仍然想让用户用旧地址访问到它时,变的极为有用。
使用.htaccess文件重定向
Redirect a.html  http://www.new.com/a.html
###访问www.old.com/old/a.html 实际上被重定向到www.new.com/new.a.html
使用.htaccess重定向整个网站的目录。
Redirect /old  htt://www.new.com/new
###当你访问原来网站上的文件、图片、js等资源的时候都被重定向到新的网址,如访问www.old.com/old/ad/a.html 实际上被重定向到www.new.com/new/ad/a.html文件上

利用 .htaccess 防止盗链

如果不喜欢别人在他们的网页上连接自己的图片、文档的话,也可以通过htaccess的指令来做到。

所需要的指令如下:

RewriteEngine on
RewriteCond %{ HTTP_REFERER } !^$
RewriteCond %{ HTTP_REFERER } !^http://(www.)?w3sky.com/.*$ [NC]
RewriteRule .(gif &line;jpg)$ – [F]

如果觉得让别人的页面开个天窗不好看,那可以用一张图片来代替:

RewriteEngine on
RewriteCond %{ HTTP_REFERER } !^$
RewriteCond %{ HTTP_REFERER } !^http://(www.)?w3sky.com/.*$ [NC]
RewriteRule .(gif &line;jpg)$ http://www.w3sky.com/替代图片文件名 [R,L]

密码保护的.htaccess文件、密码保护的.htpasswd文件、配置.htaccess文件输入的用户名和密码、配置.htaccess文件直接访问加密网站
请跳转帕兰映像的这篇文章http://paranimage.com/htaccess-guide-to-the-use-of-two-documents-httacces-document-password-protection/

6、通过htaccess开启网站图片缓存
  某些虚拟主机限制了网站的流量,如果浏览器每次都从服务器下载最常用的图片文件,将会浪费大量的带宽。因此可以开启图片缓存,浏览器在缓存过期前将会自动从缓存区载入图片文件。此功能在文件中加入以下代码:
  Header set Cache-Control “max-age=3600″
  需要注意的是,上面的3600单位为秒,即超时时间,上图中的gif等为图片文件后缀,表示对这些文件生效。如果使用自动生成工具,为了开启此选项,请将“开启站点的图片缓存”选项卡选择一个超时时间。目前有十分钟、一小时、一天等选项可供设置。
0 0
原创粉丝点击