.htaccess文件是Apache服务器中最常用的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置索引入口等功能。

  另外,.htaccess手动编辑方法是使用UE或notepad2等高级文本编辑器。如果不方便下载或手动编写的文件出错,也非常推荐在线htaccess文本编辑器,目前这款编辑器已经非常完善,并且在二次开发下已经增加了很多新功能,简单易用,完美支持多条件复杂任务的htaccess文件智能生成任务。

  1、开启网站的图片防盗链功能

  如果网站的流量有限,那么图片防盗链是非常必要的。不仅可以减少流量浪费,而且可以减轻服务器负担。开启图片防盗链功能需要在htaccess文件中加入以下代码:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?allow1.com(/)?.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?allow2.com(/)?.*$ [NC]
RewriteRule .*\.(gif|jpg|jpeg|bmp|png)$ [R,NC,L]

上面的代码中,allow1.com与allow2.com分别是允许访问网站图片的域名,后面的baidu.com则是替换成的目标图片地址。上面还包含了图片文件的后缀参数,可以自行更改。如果通过htaccess在线生成器生成此段代码,仅仅需要填写几个允许访问的域名(不带www与http),然后再填写好准备替换的图片地址。

  2、自定义404、500等错误返回页

  如果你不希望网站在找不到网页的时候出现“404该页无法显示”,就试试自己定义一个找不到网页的出错页面吧!需要在htaccess文件中加入

  ErrorDocument 404 /404.htm

  前面的404是其错误代号,后面的/404.htm是自己定义的404页面的路径。需要注意的是,如果这个404页面的大小小于512B,则IE会忽略此页面,也就不会生效了。后面的参数需要使用网站相对路径。在htaccess在线生成程序中,请切换到“自定义错误页面”选项卡,然后在“404(未找到)”后面的输入框中输入你的错误页面地址即可。在线生成工具还可以处理其它类型的错误,以此类推即可。请预先将404错误页面制作好上传到网站目录。

  3、屏蔽网站目录列表

  目录列表是在网站找不到默认文件时的应急措施,服务器将毫无保留的返回一个当前目录下的所有文件。这将给网站带来非常大的安全隐患。因此,现在很多程序都会在任何子目录下面放一个index.htm文件来避免这种疏漏。但是,通过htaccess文件我们可以彻底的解决这个问题。

  在文件中加入以下代码:

  Options -Indexes

  这将彻底关闭网站的目录列表功能,但对于网站的正常访问是没有任何影响的。如果想显示文件列表,则只需要将“-”更改为“+”。如果使用htaccess在线生成工具,只需要把“是否在没有默认文档的目录显示文件列表”菜单选择成“隐藏”即可,程序将自动生成相关代码。

  4、WWW统一网址格式与重定向

  在SEO的观点里认为,如果abcd.com与www.abcd.com都能访问,这对于搜索引擎来说是个非常不好的体验,也很容易造成权重分散。而我们要做的就是将带www的网址与不带www的网址进行统一。

  我们不建议手动编写该段代码,自动生成程序已经做了完善的判断,你只需要切换到“WWW域名重定向”选项卡,在WWW域名重定向后面的地址栏中填入你希望最终使用的域名即可!注意,此处填写的域名必须为完整网址,比如 http://www.xxxx.org 或者 http://xxxx.org 。程序将根据您的输入自动判断使用正重定向还是逆重定向。

  5、默认入口页面

  有些虚拟主机就是另类,不适用默认的文件名,或顺序非主流。那么通过以下的代码就可以自己定义这个页面的文件名了。比如index.htm 、default.php等等:

  DirectoryIndex index.php

  这行代码将index.php作为默认首页。其他页面请直接替换例子中的index.php。如果网站有多个页面需要作为首页,请按照DirectoryIndex index.php index2.php的格式编写文件。此项设置在htaccess生成器中,仅仅需要你依次填入首页的文件名即可,非常方便。

  6、通过htaccess开启网站图片缓存

  某些虚拟主机限制了网站的流量,如果浏览器每次都从服务器下载最常用的图片文件,将会浪费大量的带宽。因此可以开启图片缓存,浏览器在缓存过期前将会自动从缓存区载入图片文件。此功能在文件中加入以下代码:

  Header set Cache-Control “max-age=3600″

  需要注意的是,上面的3600单位为秒,即超时时间,上图中的gif等为图片文件后缀,表示对这些文件生效。如果使用自动生成工具,为了开启此选项,请将“开启站点的图片缓存”选项卡选择一个超时时间。目前有十分钟、一小时、一天等选项可供设置。

  7、固定301、302网页重定向

  由于页面转移位置造成的404错误是我们大家都非常头痛的问题,但我们只需要做一个301的重定向就会完全解决这个问题了。在htaccess文件中加入以下代码:

  Redirect permanent /old.htm http://www.aaa.com

  前面一个参数使用相对路径,也可以使用目录名,后一个参数必须填写完整网址。这样才能生效,并且不出错误。在SEO中,搜索引擎也很快就会按照你的设置,将收录的网页更新。

  此外,htaccess还可以实现比如MIME文件类型修改、域名重定向等功能,因此,能充分利用好该文件将能让你的网站建设更加得心应手。

详解Apache下.htaccess文件常用配置相关推荐

  1. 详解Apache下.htaccess文件的8个用法

    .htaccess文件允许我们针对特定目录及其子目录修改一些服务器设置,虽然这种类型的配置最好是在服务器本身配置文件的小节部分处理,但有时我们根本没有权限访问这个配置文件,尤其是当我们在一台共享的托管 ...

  2. linux subversion 根目录检出,经验总结:详解Linux下Subversion的安装配置记录 下

    上节介绍额Linux下Subversion的安装问题,本节介绍Linux下Subversion配置问题,你可以和Windows下Subversion的安装配置做一个对比,你就会发现在这两种操作系统中S ...

  3. python3.6安装步骤-详解win7下python3.6安装配置方法步骤

    win7下python3.6安装配置方法图文教程 win7 python3.6安装教程及环境配置,具体内容如下 由于刚刚重装系统,发现安装得win7专业版存在漏洞,导致Python3不行安装,提示:P ...

  4. Linux文件关联详解 linux 修改默认文件关联打开程序

    linux 修改默认文件关联打开程序 从总体上讲 /etc/gnome/defaults.list 保存了全局的打开方式 /.local/share/applications/mimeapps.lis ...

  5. linux apache htaccess,Apache下htaccess的配置使用详解

    Apache下htaccess的配置使用详解 看到群里很多前辈都在讨论.htaccess的用法,自己之前也小用过,只做了404的重定向,当然.htaccess的功能远不止这些,他还可以帮助我们做很多( ...

  6. Android中measure过程、WRAP_CONTENT详解以及xml布局文件解析流程浅析(下)

       本文原创, 转载请注明出处:http://blog.csdn.net/qinjuning 上篇文章<<Android中measure过程.WRAP_CONTENT详解以及xml布局文 ...

  7. mysql data文件夹恢复_【专注】Zabbix源码安装教程—步骤详解(2)安装并配置mysql...

    四.安装并配置mysql(1) 解压mysql-5.7.26.tar.gz与boost_1_59_0.tar.gz #tar -xvf mysql-5.7.26.tar.gz #tar -xvf bo ...

  8. ansible自动化运维详解(三)ansible常用模块续

    文章目录 ansible自动化运维详解(三)ansible常用模块续 四.ansible常用模块(2) 4.10.yum_repository 4.11.dnf 4.12.service 及 fire ...

  9. IIS负载均衡-Application Request Route详解第二篇:创建与配置Server Farm(转载)

    IIS负载均衡-Application Request Route详解第二篇:创建与配置Server Farm 自从本系列发布之后,收到了很多的朋友的回复!非常感谢,同时很多朋友问到了一些问题,有些问 ...

最新文章

  1. android设置app全局没通知声,从android中的firebase发送通知时没有通知声音
  2. mysql怎么加全局锁_MySQL锁机制/管理(并发锁,行锁,表锁,预加锁,全局锁等等)
  3. 2015年科技巨头的十个开源产品,不只是.NET、Swift
  4. 已知数据信息为 16位,最少应附加( )位校验位,以实现海明码纠错。
  5. catv系统主要有哪三部分组成_光纤放大器在DWDM传输系统中的应用
  6. 牛客网Java刷题知识点之调用线程类的start()方法和run()方法的区别
  7. Unity3D 脚本实现动画效果
  8. RS485接口与RJ45接口的区别与通讯限制
  9. 数据交换平台-初步设计
  10. 百度街景瓦片下载器1.1.5
  11. marshmallow——简介
  12. window下线程同步之(Event Objects(事件)) / 事件CEvent的使用
  13. Mysql数据库【触发器】
  14. 保持应用后台,熄屏状态下继续运行
  15. 小区智能化平台服务器,小区智能化报价
  16. ubuntu下安装软件的方法
  17. 在桌面计算机找不到光盘驱动器,我照的婚纱,把光盘放进里面了,打开电脑了,在电脑上找不到相片...
  18. 论文阅读:Automatic segmentation of pulmonary lobes using a progressive dense V-network
  19. VRF(虚拟路由转发)
  20. 2021年C证(安全员)考试题库及C证(安全员)多少钱

热门文章

  1. 切割图形_模型教程丨切割机使用——结合实例
  2. C:模块化程序设计 以及数组
  3. HDU 2586 How far away ? LCA ---tanjar+并查集 离线算法
  4. ubuntu安装OpenCV详细教程(建议收藏)
  5. python删除csv某一行_Python如何修改CSV的某一行/列的值
  6. 高精地图:为自动驾驶汽车提供动力的新时代地图
  7. ue4中面部动画制作视频教程 Facial Animation More In Unreal Engine 4
  8. 从BloomFilter到Counter BloomFilter
  9. 剑指offer-----Python-----栈
  10. 多线程共享全局变量以及锁机制