什么是htaccess
概述来说,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
一个简单的重定向
Redirect 301 ^old.html$ http://localhost/new.html
这是设置一个http状态码为301(永久移动)并把所有访问old.html转向到new.html。使用了正则表达式来匹配访问的页面,后面的url必须是完整路径。
Url重写
RewriteEngine on
RewriteRule ^old.html$ new.html
第一行打开重写引擎
第二行是重写规则。这样用户访问old.html时实际却是访问的new.html,而且用户对此好吧知情。因为地址栏里依旧显示是old.html。
为了在地址栏显示新的访问地址,我们可以加个f标志在rewriterule语句里。
RewriteRule ^old.html$ http://hostname/new.html [r=301]
下面是把带查询参数的url重写成对搜索引擎友好的url
RewriteRule ^products/([^/]+)/([^/]+)/([^/]+) product.php?cat=$1&brand=$2&prod=$3
这条规则允许访问者以类似这样的
url products/turntables/technics/sl1210,
来访问product.php?cat=turntables&brand=technics&prod=sl1210.
括号里为一个单元,分别对应后面的$1,$2,$3。[^/]+ 在原括号里表示除了/之外的任何一个或是多个字符。
自定义错误页面
ErrorDocument 404"/404.html"
这是定义404页面无法找到的错误,也可以定义其他错误代码的页面。
限定访问特点资源
<Files"protectedfile.html">
AuthName"Username and password required"
AuthUserFile/path/to/.htpasswd
Require valid-user
AuthType Basic
</Files>
保护protectedfile.html,authName是登陆框的提示信息,authuserfile是.htpasswd文件的路径
阻止某些ip访问
order allow,deny
deny from 192.168.0.1
allow from allOrder
告诉apache指令的顺序。这里的这个是先允许后拒绝的。虽然allow from all后出现但是还是在前面生效。拒绝了192.168.0.1的访问。也可以按段来屏蔽访问的,只要只指定前面的几段就可以类似,192.168.
实现缓存
ExpiresActive on
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
第一行开启,下面分别控制各种资源都加上一个月的缓存期。这个功能依赖apache的mod_expires 模块。
认证举例
如果你只是为了知道如何认证,而直接从这里开始看的,有很重要的一点需要注意,有一种常见的误解,认为实现密码认证必须要使用.htaccess文件,其实是不正确的。把认证指令放在主配置文件的<Directory>段中是一个更好的方法,而.htaccess文件应该仅仅用于无权访问主配置文件的时候。参见上述关于何时应该与何时不应该使用.htaccess文件的讨论。
有此声明在先,如果你仍然需要使用.htaccess文件,请继续看以下说明。
.htaccess文件的内容:
AuthType Basic
AuthName "Password Required"
AuthUserFile /www/passwords/password.file
AuthGroupFile /www/passwords/group.file
Require Group admins
必须设置 AllowOverride AuthConfig 以允许这些指令生效。
服务器端包含(SSI)举例
.htaccess文件的另一个常见用途是允许一个特定的目录使用服务器端包含(SSI),可以在需要的目录中放置.htaccess文件,并作如下配置:
Options +Includes
AddType text/html shtml
AddHandler server-parsed shtml
注意,必须同时设置 AllowOverride Options 和 AllowOverride FileInfo 以使这些指令生效。
指令的作用范围.htaccess文件中的配置指令作用于.htaccess文件所在的目录及其所有子目录,但是很重要的、需要注意的是,其上级目录也可能会有.htaccess文件,而指令是按查找顺序依次生效的,所以一个特定目录下的.htaccess文件中的指令可能会覆盖其上级目录中的.htaccess文件中的指令,即子目录中的指令会覆盖父目录或者主配置文件中的指令。
例子:
/www/htdocs/example1
目录中的.htaccess
文件有如下内容:
Options +ExecCGI
(注意:必须设置"AllowOverride Options"以允许在.htaccess中使用"Options"指令)
/www/htdocs/example1/example2目录中的.htaccess文件有如下内容:
Options Includes
猜你喜欢
- 开启Discuz!7.0论坛的“邀请注册”功能后,新用户需要邀请码才可以注册,这样就可以限制论坛注册的人数,一来可以减少论坛服务器负载,二来
- DNS软件是黑客热衷攻击的目标,它可能带来安全问题。这里是一些保护DNS服务器最有效的方法。1.使用DNS转发器DNS转发器是为其他DNS服
- 2月9日消息,据国外媒体报道,日前有消息称,Windows Vista SP1将于2月18日发布,而Windows XP SP3将于23日上
- 概述Microsoft 的运营技术组(OTG)最近部署了 Microsoft Exchange Server 2003 - 该公司行业领先的
- 对于 Linux 管理员来说这是一个重要(美妙)的话题,所以每个人都必须知道,并练习怎样才能更高效的使用它们。在 Linux 中,无论何时当
- 成都SEO记得有一次在坛子里看牛人的文章说:SEO高手们是不需要Keywords和Description??百思不得其解,困惑得想找个六层的
- 10月22日消息,视频分享网站56网与成都传媒集团携手,就“国际小姐”世界大会展开深层次合作,56网
- 今天我们来回顾下,雅虎公司标志 Yahoo! Logo 的变化历程(1994-2009)。1994,没有标志。一开始雅虎并没有标志,事实上,
- 首先我相信,每一个走上站长之路的人,绝对是有着极其强烈表现欲望和无穷创造力的人。因为网站就是一个媒体,就是一个信息传播或者交流平台,而站长,
- 很多朋友问,seo要选取什么关键字才能达到效果,以下发表一下我的看法。一、不要太相信top.baidu.com那些关键字是热门,但也是个个人
- IDC首席分析师预计到2012年,美国云计算总开支将达到400亿美元,是2008年的3倍。面对这个巨大的利益诱惑,谷歌等IT企业早已跃跃欲试
- 最近在优化韩国留学的网站,在讨论网站关键词时遇到一些技术以外的思维观念问题,拿出来与大家讨论。seoer都知道,优化网站在关键词的选择上是至
- Adsense推介不带中国玩了,这从是点石得到的最新消息,不知道真的还是假的,如果是真的很大站长朋友的收录又要少了,做站真是不容易啊。后面只
- 闲暇的时候,我喜欢用自己的相机狂拍一通。然后用我喜爱的“美图秀秀”软件美化一下,就是一组组美丽的个人写真哦。软件操作简单,一些流行的图片特效
- jenkins 配置用户角色权限需要安装插件 Role Strategy Plugin1.安装 Role Strateg
- 这时候可以通过如下命令来测试proftpd是否正常运行:C:WINDOWS>ftp192.168.2.33Connectedto192.16
- 用户网页加载时间分为三部分:网页执行时间+页面及页面元素加载时间+浏览器渲染网页时间针对这三部分时间,我将加速的方法依加速的方式分成以下几类
- 10月14日消息,瑞士信贷周二表示,受惠于2010年上半年对于新款服务器芯片-Nehalem的强劲需求,将有助于提高英特尔的收入。瑞士信贷因
- Windows2003服务器安装及设置教程好久没有更新了,正好最近上了一台服务器,正好把剩下的几篇补全,今天先说的是MySQL安全篇——将M
- 如果域名品牌没构建好就建站的话那么你就失败了一半,回想刚开始注册域名的那情景,首先那个时候年轻冲动,初生牛崽不怕虎,很冲动地注册了一些自认为