分享好友 系统运维首页 频道列表

Apache服务器的htaccess文件配置 rewrite/防盗链/屏蔽爬虫蜘蛛

apache教程  2023-02-10 02:200

Apache服务器的htaccess文件配置 rewrite/防盗链/屏蔽爬虫蜘蛛

htaccess是Apache服务器的一个配置文件,具有强大的功能,本文介绍如何编辑该文件,让网站实现***某国家IP网段、防止图片、文件盗链、保护主机下的目录与文件、创建自定义的出错页面、把某些特殊的IP地址的请求重定向到别的站点、把老的域名转像新的域名,这些功能。

htAccess 文件(Hypertext Access file)是Apache Web服务器的一个非常强大的配置文件,对于这个文件,Apache有一堆参数可以让你配置出几乎随心所欲的功能。

使用.htaccess挡掉搜寻引擎机蜘蛛

挡掉百度搜寻引擎

百度是传说中的暴力搜寻引擎,不遵守搜寻引擎的规则,若你尝试使用robot.txt来挡住,那非常恭喜你,绝对无效。所以一定要使用比较暴力、强硬的手段才能,因此透过.htaccess就可以处理了,如果你要挡掉一些搜寻引擎(像是百度、搜狗等),那请将以下程式码贴到htaccess.txt文件中。

SetEnvIfNoCase User-Agent "^Baidu" bad_bot
SetEnvIfNoCase User-Agent "^sogou" bad_bot
SetEnvIfNoCase User-Agent "^Bloghoo" bad_bot
SetEnvIfNoCase User-Agent "^Scooter" bad_bot
Deny from env=bad_bot

 

挡掉Google搜寻引擎

如果你想要挡掉Google搜寻引擎,当然也可以透过.htaccsee挡掉,只要输入以下程式码就可以了,如果要连同暴力百度搜寻引擎一起***,那就把这两串程式码放在同一个htaccsee.txt文件中。

SetEnvIf User-Agent "^Googlebot" google
Deny from env=google

 

用.htaccess***某国家IP网段

有时候自己可能会规画网站的发展方向,有不欢迎某些特定的国家来访,这时候第一个想法应该是要锁该国家的IP,但是却不知从何做起?因为不知道那个国家的IP跟本不能锁,这时候可以透过「blockcountry」线上工具网站产生的htaccess语法来替自己***想要***的IP网段国家。

第1步 来到Block country(http://www.blockcountry.com) 网站首页,首先你会看到一个框框,框框中有许多国家,请您挑选要***的国家,可以复选,选择完成后请点击下方的﹝Block Now!﹞。

Apache服务器的htaccess文件配置 rewrite/防盗链/屏蔽爬虫蜘蛛

Apache服务器的htaccess文件配置 rewrite/防盗链/屏蔽爬虫蜘蛛 

第2步 将刚刚网页上产生的程式码贴到htaccess文件中,然后储存。Apache对于被拒绝的IP会返回403错误。

用.htaccess防止图片、文件盗链

一个图文并茂的网站,最怕的就是文章转贴,虽然现一直在尊重着作权法,但还是有许多人假装没看见?许多人喜欢「复制→贴上」,但这样一个转贴动作却会对一个网站造成莫大的伤害,除了辛苦写的文章被偷走外,连图片也盗链!图片或文件被盗连最怕的就是后续的流量,为了避免这种问题,我们必须自立自强,防止盗链这种可恶的行为!

如果是cPanel虚拟主机,防盗连的方法不外乎就是到cPanel后台进行设定。如果你是其他类型的空间后台或者是说你只有FTP权限的空间,那该怎么办呢?其实只要你的空间支持.htaccess文件并且支持ReWrite,你都可以防止图片与文件的盗链!

通过.htaccess来防止网站的图片、压缩文件、或视频等非Html文件被盗链的方法相当简单,通过在该文件中加入几句命令即可保护我们宝贵的带宽。例如chinaz.com的设置如下:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !nobing.cn [NC]
RewriteCond %{HTTP_REFERER} !google.com [NC]
RewriteCond %{HTTP_REFERER} !baidu.com [NC]
RewriteCond %{HTTP_REFERER} !www.domain.com [NC]
RewriteRule .*\.(gif|jpg)$ http://www.chinaz.com/no.png [R,NC,L]

 

利用.htaccess来保护主机下的目录与文件

一般来说很多虚拟主机预设是没有开启保护网站主机目录下的文件,其实很危险的,假若你的目录下忘记放置index文件,那很可能您目录就被看光,一个不小心很可能重要资料就被拿走,这是蛮严重的一件事情。如果是Linux主机,我们可以透过简易的.htaccess语法来保护网站主机目录下的文件,让别人无法轻易看见。

平常我们使用的最简单保护目录的方法,莫过于使用「index.php」、「index.html」等等之类的网站index文件,因为主机内预设的设定在目录中预设就是要抓index文件,而index文件通常会有很多种,主机会依续排列下来抓取,所以可以设定index文件来让主机抓取,以达到保护目录的效果。但如果主机需要的index文件没有一个存在,这时候主机就会直接显示目录内的东西了,因为主机不知道要抓取谁当作主要网页,所以会全部显示。

虽然使用index文件来保护目录是可行的,但是每个子目录都需要传一个index文件其实蛮累人的,这时候我们就可以利用「.htaccess」来批量处理。

Options -Indexes

 

语法的进阶使用

当然该语法还有其他相关的用途,以下列出简单的几项供大家参考使用,如果你觉得以下的语法不是你想要或是想学更多,你可以到Apache官方网站来看看英文说明书,查看看还有什么关于「indexoptions」的用途或是其他不错的功能喔!

Options +Indexes:显示目录下所有文件

Options -Indexes:隐藏目录下所有文件 (上面已经介绍过)

IndexOptions +FancyIndexing:显示目录下所有文件,文件前面包含档案类型的小图示

IndexOptions -FancyIndexing : 显示目录下所有文件,但不包含文件类型的小图示

IndexIgnore *.php *.exe:隐藏特定的文件, 其余文件正常显示(隐藏所有的php和exe文件)

使用.htaccess 创建自定义的出错页面

对于Linux Apache来说这是一项极其简单的事情。使用下面的.htaccess语法你可以轻松的完成这一功能。(把.htaccess放在你的网站根目录下)

ErrorDocument 401 /error/401.PHP

ErrorDocument 403 /error/403.php

ErrorDocument 404 /error/404.php

ErrorDocument 500 /error/500.php

 

 把某些特殊的IP地址的请求重定向到别的站点

ErrorDocument 403http://www.youdomain.com

Order deny,allow

Deny from all

Allow from 124.34.48.165

Allow from 102.54.68.123

 

把老的域名转像新的域名

# redirect from old domain to new domain

RewriteEngine On

RewriteRule ^(.*) $http://www.yourdomain.com/$1 [R=301,L]

查看更多关于【apache教程】的文章

展开全文
相关推荐
反对 0
举报 0
评论 0
图文资讯
热门推荐
优选好物
更多热点专题
更多推荐文章
Hadoop中mapreduce运行WordCount程序报错Error: java.io.IOException: Type mismatch in key from map: expected o
这个问题是因为map的方法参数与继承mapper定义的参数类型不一致导致的,应该将Mapper的key参数类型设置成Object,就可以解决这个问题 

0评论2023-03-08965

[转]用apache反向代理解决单外网ip对应内网多个web主机的问题
用apache反向代理解决单外网ip对应内网多个web主机的问题  转载一个有独立外网IP,需内网服务器对外发布的例子,是应用apache虚拟主机的。来源地址:http://www.itshantou.com/Servers/web/06/10/44219.html    几年前开始在学校的服务器上建网站,那时

0评论2023-02-10583

Apache service named reported the following error(OS 10055)由于系统缓冲区空间不足或队列已满解决办法?
apache启动失败报错:The Apache service named reported the following error: AH00451: no listening sockets available, shutting down . The Apache service named reported the following error: (OS 10055)由于系统缓冲区空间不足或队列已满,不能执行

0评论2023-02-10403

struts布局管理---SiteMesh一个优于Apache Tiles的Web页面布局、装饰框架
1. SiteMesh的基本原理       一个请求到服务器后,如果该请求需要sitemesh装饰,服务器先解释被请求的资源,然后根据配置文件 获得用于该请求的装饰器,最后用装饰器装饰被请求资源,将结果一同返回给客户端浏览器。 2. 如何使用SiteMesh    这里以st

0评论2023-02-10726

linux 安装 apache2.2.31
 Linux下安装和配置Apache 概要:本文介绍在CentOS5.4 Linux中安装和配置Apache2.2.14,并且实现Apache和Tomcat6的整合。文章分为三部分,分别是删除系统自带的Apache、安装Apache2.2.14和配置Apache2.2.14。 文章中介绍的知识也可以在其它版本的Linux中

0评论2023-02-10408

apache下ab.exe使用方法。。 apache ab工具
自己在cmd中写了半天的路径也没有写对。。最后网上的一个哥们告诉我说没有共同语言了。。。毛线啊 差距确实很大!大能猫死panda早晚干掉你,叫你丫整天嘲讽我!比如我的ab.exe在D盘的wamp文件夹下apache文件夹下bin文件夹下。那么在cmd中可以这么写:"D:\wamp

0评论2023-02-10478

CentOS 下的apache服务器配置与管理
一、WEB服务器与Apache1、web服务器与网址2、Apache的历史3、补充http://www.netcraft.com/可以查看apache服务器的市场占有率同时必须注意的是ngnix,正处于强势增长的上升时期,大有和apache一争天下的感觉,真是后生可畏~~~二、Apache服务器的管理命令1、命

0评论2023-02-10950

apache 的FTPClient使用以及注意事项
      tomcat+apache+jk进行集群后,图片要进行共享,经过网上的搜索可以有多种方式实现。        一种是使用jcifs。jcifs可以实现网络***享文件的读写,但是前提是,文件必须共享,还要在同一个局域网内。所以如果电脑上禁止了文件共享的话,就

0评论2023-02-10427

apache错误02:安装完后,系统找不到指定的文件 No installed service named "Apache2"的解决办法
解决办法:在“开始 -〉运行”处输入 cmd 回车,转到apache的安装目录,然后进入bin 目录,即cd bin ,在这里敲入 apache.exe -k install 后回车,然后重启Apache 就OK了。

0评论2023-02-10851

Apache提示You don't have permission to access / on this server 解决
 ;建议针对/private/var/log/apache2/中error来看[Sun Jun 02 18:00:37.760853 2019] [core:error] [pid 1677] (13)Permission denied: [client 127.0.0.1:53454] AH00035: access to / denied (filesystem path ‘/Users/sf/Documents/phpstorm’) because

0评论2023-02-10912

windows Apache 配置支持HTTPS的SSL证书
在设置Apache + SSL之前, 需要做:安装Apache, 下载安装Apache时请下载带有ssl版本的Apache安装程序.并且ssl需要的文件在如下的位置:     [Apache安装目录]/modules/ mod_ssl.so    [Apache安装目录]/bin/ openssl.exe, libeay32.dll, ssleay32.dll, ope

0评论2023-02-10924

mysql_pconnect的水挺深,apache下的数据库长连接
  php的mysql持久化连接,美好的目标,却拥有糟糕的口碑,往往令人敬而远之。这到底是为啥么。近距离观察后发现,这家伙也不容易啊,要看apache的脸色,还得听mysql指挥。  对于做为apache模块运行的php来说,要实现mysql持久化连接,首先得取决于apache这个

0评论2023-02-10314

网页504超时 apache php
1. 修改apache 配置apache-default.conf  timeout设置成12002. 修改php.ini 配置php.inimax_execution_time = 1200max_input_time = 1200max_execution_time = 1200 后来发现还没有解决问题,到60s就超时了排查到合作的一个代理https的服务器,他们默认60s

0评论2023-02-10635

更多推荐