.htacccess文件的几个实用方法

1.网址重定向(网站SEO)
RewriteEngine On
RewriteCond %{HTTP_HOST} !^yourname.com$ [NC]
RewriteRule ^(.*)$ http://yourname.com/$1 [L,R=301]

这种重定向旨在使域名唯一,是网站SEO必须要做的,此方法可让域名的权重更加集中

2.配置.htaccess 自定义错误页。
.htaccess的第一个应用是自定义错误页面,这将使你可以拥有自己的、个性化的错误页面(例如找不到文件时),而不是你的服务商提供的错误页或没有任何页面。这会让你的网站在出错的时候看上去更专业。
你所知道的任何页面错误代码(像404找不到页面),都可以通过在.htaccess文件里加入下面的文字将其变成自定义页面:
ErrorDocument errornumber /file.html
举例来说,如果我的根目录下有一个nofound.html文件,我想使用它作为404 error的页面:
ErrorDocument 404 /notfound.html
如果文件不在网站的根目录下,你只需要把路径设置为:
ErrorDocument 500 /errorpages/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
常见的服务器错误返回代码:
500 Internal Server Error内部服务器错误
接下来,你要做的只是创建一个错误发生时显示的文件,然后把它们和.htaccess一起上传。
用户可以利用.htaccess指定自己事先制作好的错误提醒页面。一般情况下,人们可以专门设立一个目录,例如errors放置这些页面。然后再.htaccess中,加入如下的指令:
ErrorDocument 404 /errors/notfound.html
ErrorDocument 500 /errors/internalerror.html
一条指令一行。上述第一条指令的意思是对于404,也就是没有找到所需要的文档的时候得显示页面为/errors目录下的notfound.html页面。不难看出语法格式为:
ErrorDocument 错误代码 /目录名/文件名.扩展名
如果所需要提示的信息很少的话,不必专门制作页面,直接在指令中使用HTML号了,例如下面这个例子:
ErrorDocument 401 “你没有权限访问该页面,请放弃!”

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

4.配置 .htaccess 禁止某IP段的访问
如果我不想某个政府部门访问到我的站点的内容,那可以通过.htaccess中加入该部门的IP而将它们拒绝在外。
例如:
order allow,deny
deny from 192.168.1.2
deny from 192.168.1.
allow from all
第二行拒绝某个IP,第三行拒绝某个IP段,也就是192.168.1.0~192.168.1.255
想要拒绝所有人?用deny from all好了。不止用IP,也可以用域名来设定。

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

6.利用.htacccess文件反向绑米(不让顶级域名绑定的空间)
1.去找一个免费的国外空间(稳定点的最好),要支持.htacccess重写的,然后绑米。
2.请新建一个名叫“.htaccess”的文件(windows无法直接创建.htaccess,请用ultraEdit,EditPlus等软件创建,或者还可以用CMD命令),用记事本输入以下内容:
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)$ http://www.baidu.com/$1 [P]

绑米后访问这个空间,如果页面显示的是百度的网页且地址栏里是你的网址,那么恭喜你,这个空间可以用反向代理,否则就换个空间从头来过吧。
3.修改你在第二步创建的.htaccess文件,把“www.baidu.com”换成“yourname”(把yourname换成你的域名),然后上传到你申请的国外网站的根目录下

目前有 1 条评论

avatar

w458swzl95  2011-07-28 10:48 1楼

只有你才想的出来、人才. 回复
昵称
邮箱
主页
提交
订阅