.htaccess是Apache服务器的一个很是强大的分布式配置文件。 正确的理解和使用.htaccess文件,能够帮助咱们优化本身的服务器或者虚拟主机。php
如何启用htaccess 以windows为例,进入apache/conf目录,找到httpd.conf文件,去掉 LoadModule rewrite_module modules/mod_rewrite.so 前面的#,而后设置目录属性AllowOverride All,重启apache便可html
常见格式apache
下面是一个典型的htaccess文件windows
# 开启URL重写# 应用怎样的规则
RewriteRule .? http://www.example.com%{REQUEST_URI} [R=301,L]服务器
来看看RewriteCond,首先有一个%,由于{HTTP_HOST}是一个apache变量,须要用%来指示。从!开始就是匹配的条件,支持 正则。!表示不等于,这句话的意思就是:若是HTTP_HOST不是www.example.com。后面的[NC](no case)表示忽略大小写,常见的还有网络
图片防盗链app
RewriteCond %{HTTP_REFERER} !^$因为是基于HTTP_REFERER的验证,因此只能防止通常的图片盗链,由于HTTP_REFERER是比较容易伪造的分布式
自定义404错误页面
若是用户输入了一个不存在的url,那么就显示自定义的错误页面ide
处理移动过的文件优化
Redirect 301 /old.html http://yoursite.com/new.html对于RewriteRule还有好多文章能够作,好比
# 把html后缀的url连接到php文件若是目录里没有index文件,又没有对该目录作过特别的处理,尤为是windows主机,那么该目录里的内容就会显示出来,这时能够在根目录建立 一个.htaccess文件,而后写上
Options -Indexes阻止/容许特定IP/IP段
# 禁止全部IP,除了指定的
order deny,allow
deny from all
# 若是想容许IP段,如123.123.123.0 ~ 123.123.123.255,则
# allow from 123.123.123.
allow from 123.123.123.123
ErrorDocument 403 /page.html
allow from all
#若是想禁止特定IP
deny from 123.123.123.123
添加MIME类型
AddType video/x-flv .flv