Apache下htaccess的配置使用详解(原创亲测)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Apache 下 htaccess 的配置使用详解(原创亲测) 的配置使用详解(原创亲测) 看到群里很多前辈都在讨论.htaccess 的用法,自己之前也小用过, 只做了 404 的重定向,当然.htaccess 的功能远不止这些,他还可以帮助我们做很多(比如: 自定义错误页面,禁止目录被浏览,地址重定向,目录保护,改变默认首页索引, 防止网站图片盗链 等).今天我在本地 localhost 将 apache 下 htaccess 做了详 细的整理和测试. 为什么要使用.htaccess? 为什么要使用 答:很多网站都是租用服务器和虚拟主机的,其服务器的配置 我们并不能改.当我们有特殊要求时,比如定义最简单的 404(页面未找到)的错 误页面,我们就只能通过 apache 配置的扩展配置(或者说是子配置)来更改扩展 原服务器的配置. 这个配置就是.htaccess 文件, 他想但与 apache 下的 http.conf 文件的延续. 使用.htaccess 的条件 使用 答:要在服务器上使用.htaccess 文件配置,必须要求服务器 开通对于的支持.两个条件:1.mod_rewrite 模块开启;2. AllowOverride All 要使用.htaccess,apache 下 http.conf 该如何配置 , 要使用 答:很简单,只需要改两个地方: 1. 将工作目录下的 AllowOverride None 改为 AllowOverride All. 具体位置 为你可以在 http.conf 下搜索 AllowOverride controls what directives may be placed in .htaccess files. 该句下面的那个 AllowOverride 就是 要改的位置. 2. 开启.mod_rewrite 模块.将#LoadModule rewrite_module modules/mod_rewrite.so 前的#去掉即可.
.htaccess 实现各种功能的配置写法
自定义错误页面
配置解答:
写法:ErrorDocument 错误代码
空格
/目录名/文件名.扩展名
例子:ErrorDocument 404 /404.html ErrorDocument 500 /help/errors/internalerror.html
这样当文件未找到(404)或者服务器错误(500)时就会自动跳转至写好的提示页, 有助于网站的用户体验.至少不会显示浏览器默认的提示信息,也可以防止服务器 的信息泄露,既安全又友好.
禁止/允许目录被浏览 禁止 允许目录被浏览
配置解答:
写法:IndexIgnore */*
很多服务器本身就已经禁止了目录被浏览并会提示.如果你在建站初 期调试,想要开通此功能也未尝不可.只需要添加一句:
写法: Options +Indexes
页面或网址重定向
配置解答:
写法 1:Redirect permanent [old directory or file name][空 格][new directory or file name]
其中 permanent(永久)是为了告诉搜索引擎,老的链接已经移到新链接了.
写法 2:Redirect /旧页面地址[空格]新页面的地址 例子: Redirect permanent /oldhtmlfile.htm /newhtmlfile.htm
这可以帮助我们将用户引导到我们想让其看到的页面,也可以用作域名的重定向. 有时候某些目录我们不想对用户开放,比如 cache 目录禁止用户直接输入地址访 问,我们就可以用 htaccess 的重定向配置将其直接带到首页.
改变默认首页索引页
配置解答:
写法: DirectoryIndex homepage.htm DirectoryIndex somepage.htm
多个文件名之间可以用空格隔开,这样就会按顺序将所有列出的文件列为可能的索 引文件, 记住,每一个入口只能写在一行.
DirectoryIndex homapage.html somepage.html myindexpage.html anything.html
防止网页图片被盗连
配置解答:
很多服务器供应商都是限流量和限 cpu 的.特别是流量,每个月超过了限制的流量 就需要支付额外的大洋,而自己网站的图片被盗链这就相当于别人耗了你的流量却 并没有给你带来流量.那是相当郁闷的.自然要防止被盗连.同时有些隐私比如用 户的相册如果被盗连了可能泄露隐私,这也是不好的.你可以看到百度空间,sina 博客,qq 空间均作了防盗链的处理.
写法: RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?your-domain. com/.*$ [NC] RewriteRule .(gif|jpg)$ - [F]
在上面的代码中,将[your-domain]用你真实的域名代替[没有 www],对于 (www.\),用实际的子域名代替(sub-domain.\).
或者用图片代替之,这样别人盗链的图片就会显示你所要提示的图片. RewriteEngine on RewriteCond % !^$ RewriteCond % !^http://(www/.)?域名.com/.*$ [NC] RewriteRule /.(gif|jpg)$ http://www.域名.com/替代图片文件名 [R,L]
使用.htaccess 文件的不足 使用
1,性能 AllowOverride 启用了使用.htaccess 文件,则 apache 需要在每个目录 中查找.htaccess 文件.因此会导致性能下降.另外对每一个请求,都需要读取一 次.htaccess 文件,还有 apache 必须在所有上级的目录中查找.htaccess 文件以
使有效的指令都起作用,比如如果客户端请求/www/htdocs/help 中的页面.服务 器必须查找 /.htaccess /www/.htaccess /www/htdocs/.htaccess /www/htdocs/help/.htaccess 四个额外文件 (即使这些文件都不存在, 当然你可以仅仅允许根目录使用.htaccess 文件),也就是说目录深度越深,则访问的额外文件越多,性能越低了. 2,安全 由于在/www/htdocs/help 下面的.htaccess 文件中放置指令与在主配置文件中 <Directory /www/htdocs/help>中放置相同的指令是完全等效的,这样允许用 户自己修改服务器配置, 可能就会导致某些不愿意发生的意想不到的修改,这样就会造成服务器安全问题. 这样你就必须考虑是否设置 AllowOverride None 来完全禁用.htaccess 文件.
原创,转载请注明
。