htaccess文件使用大全拒绝ip访问301重定向

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

子目录中的指令会覆盖更高级目录或者主服务器配置文件中的指令。

.htaccess必须以ASCII模式上传,最好将其权限设置为644。

错误文档的定位

常用的客户端请求错误返回代码:
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指定自己事先制作好的错误提醒页面

一般情况下,人们可以专门设立一个目录,例如errors放置这些页面。然后再.htaccess中,加入如下的指令:
ErrorDocument 404 /errors/notfound.html
ErrorDocument 500 /errors/internalerror.html
一条指令一行。上述第一条指令的意思是对于404,也就是没有找到所需要的文档的时候得显示页面为/errors目录下的notfound.html页面。不难看出语法格式为:
ErrorDocument 错误代码 /目录名/文件名.扩展名

拒绝来自某个IP的访问

如果我不想某个政府部门访问到我的站点的内容,那可以通过.htaccess中加入该部门的IP而将它们拒绝在外。

例如:

order allow,deny
deny from 210.10.56.32
deny from 219.5.45.
allow from all
第二行拒绝某个IP,第三行拒绝某个IP段,也就是219.5.45.0~219.2.45.255
想要拒绝所有人?用deny from all好了。不止用IP,也可以用域名来设定。

301重定向具体办法

经常会碰到这样的情况,其他网站链接你的站点时,会用下面的链接:
www.example.com
example.com/
www.example.com/index.html
example.com/index.php
而这样导致:你站点主域名的pr值分散到其他几个URLs了。
如果你用301重定向把其他三个URL转到www.example.com
PR也就集中在主域名:www.example.com 了。

设置.htaccess文件(只适用于linux系统,并需要虚拟主机支持。使访问example.com/的时候就会自动转到www.example.com, 在.htaccess文件里写上以下代码即可。

RewriteEngine on
RewriteCond %{http_host} ^mydomain.com [NC]
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [L,R=301]

注意:URL标准化的301重定向(以上代码)需要写在其他URL-rewrite代码之前。

留下评论