htaccess规则详细介绍
".htaccess"解释及几个简单应用
.htaccess是什么?.htaccess叫分布式配置文件,它提供了针对目录改变配置的方法--- 在一个特定的文档目录中放置一个包含一个或多个指令的文件,以作用于此目录及其所有子目录。
并且子目录中的指令会覆盖更高级目录或者主服务器配置文件中的指令。
一般来说,如果你的虚拟主机使用的是Unix系统或Linux系统,或者任何版本的Apache网络服务器,从理论上都是支持" .htaccess"的。
如何建立.htaccess?在我们使用的windows(瘟到死)主机上创建.htaccess文件是很困难的。
写文件倒很容易,你只需要在文字编缉器(例如:记事本)里写下适当的代码。
困难的是文件的保存,因为.htaccess 是一个古怪的文件名,其实它并没有文件名,只有一个由8个字母(htaccess)组成的扩展名,而在windows系统中这是无法接受的文件名。
因此,这里有3个方法可以实现。
方法一:保存文件的时候将文档保存成名为“.htaccess”(包括引号)或者htaccess.txt亦或者1.htaccess。
再将其上传到服务器上,之后直接使用FTP软件来重命名。
方法二:保存文件的时候选择文件—>另存为,保存类型选所有文件,然后文件名输入.htaccess ,这样就OK啦o方法三:直接在你的Unix或Linux虚拟主机上建立。
.htaccess简单应用htaccess是什么?.htaccess是在Apache HTTP Server这款服务器架设软件下的一个对于系统目录进行各种权限规则设置的一个文件,存在于Linux操作系统中。
比较常见的是定义默认首页名称,404页面,301转向,等等,还有更多的功能比如伪静态,限制图片外链,限制下载,密码保护,去除页面广告等等,还有非常多的功能就不一一列举。
其实这些功能大多可以在cPanel控制面板来进行设置的(相当于是.htaccess的图形化界面)。
.htaccess详解
.htaccess详解.htaccess是什么.htaccess⽂件(或者"分布式配置⽂件")提供了针对⽬录改变配置的⽅法,即,在⼀个特定的⽂档⽬录中放置⼀个包含⼀个或多个指令的⽂件,以作⽤于此⽬录及其所有⼦⽬录。
作为⽤户,所能使⽤的命令受到限制。
管理员可以通过Apache的AllowOverride指令来设置。
概述来说,htaccess⽂件是Apache服务器中的⼀个配置⽂件,它负责相关⽬录下的⽹页配置。
通过htaccess⽂件,可以帮我们实现:⽹页301重定向、⾃定义404错误页⾯、改变⽂件扩展名、允许/阻⽌特定的⽤户或者⽬录的访问、禁⽌⽬录列表、配置默认⽂档等功能。
启⽤.htaccess,需要修改httpd.conf,启⽤AllowOverride,并可以⽤AllowOverride限制特定命令的使⽤。
如果需要使⽤.htaccess以外的其他⽂件名,可以⽤AccessFileName指令来改变。
例如,需要使⽤.config ,则可以在服务器配置⽂件中按以下⽅法配置:AccessFileName .config 。
笼统地说,.htaccess可以帮我们实现包括:⽂件夹密码保护、⽤户⾃动重定向、⾃定义错误页⾯、改变你的⽂件扩展名、封禁特定IP地址的⽤户、只允许特定IP地址的⽤户、禁⽌⽬录列表,以及使⽤其他⽂件作为index⽂件等⼀些功能。
⼯作原理.htaccess⽂件(或者"分布式配置⽂件")提供了针对每个⽬录改变配置的⽅法,即在⼀个特定的⽬录中放置⼀个包含指令的⽂件,其中的指令作⽤于此⽬录及其所有⼦⽬录。
说明: 如果需要使⽤.htaccess以外的其他⽂件名,可以⽤AccessFileName指令来改变。
例如,需要使⽤.config ,则可以在服务器配置⽂件中按以下⽅法配置: AccessFileName .config 通常,.htaccess⽂件使⽤的配置语法和主配置⽂件⼀样。
四个例子实战讲解.htaccess文件rewrite规则
.htaccess 文件大家都不陌生吧。
不认识的自己去搜一下……顺便告诉你,这是个好东西,值得一学。
似乎网上关于.htaccess 编写方法的教程很有限,相信博主们也没有几个是自己写的吧?我在这里就搜了几个常用规则,总结一下rewrite 规则的用法。
当然这只是.htaccess 功能的一小部分,但是相当实用。
如果熟练掌握rewrite 规则的编写,能够加强对网站URL 的控制,对用户体验、SEO 都十分有利。
注:所有规则来源于网络,我只作解释。
一、防盗链功能1234RewriteEngine OnRewriteCond %{HTTP_REFERER} !^http://(.+.)?/ [NC] RewriteCond %{HTTP_REFERER} !^$ RewriteRule .*.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]逐行讲解一下:1.打开Rewrite 功能。
有可能服务器设置里已经是全局下打开了,但是多写也没事。
2.RewriteCond 指令,定义生效条件,用于寻找匹配条件的地址。
后面内容用正则表达式匹配。
代表含义是发送的请求不由 而来,那就是盗链啦。
末尾的[NC]代表忽略大小写。
3.发送请求的主机前缀不为空。
4.RewriteRule 指令,定义重写规则,把匹配的地址按此规则重写。
本例中把这些后缀为这些图片格式的,都替换到某一个图片下。
[L]表示这是最后一段规则。
只这四行就实现了防盗链是不是很神奇(- -||),编写起来是不是又觉得复杂。
这里总结了几个常用参数(不是全部):RewriteCond 下:[NC] 不分字母大小写[OR] 用于连接下一条规则RewriteRule 下:[R] 强制重定向,[R=code] code 默认为302[F] 禁用URL ,返回HTTP 403 错误[L] 这是最后一条规则,之后内容无用还有一篇关于正则表达式的教程(很详细):/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm二、网址规范化1234Options +FollowSymLinks rewriteEngine on rewriteCond %{http_host} ^ [NC] rewriteRule ^(.*)$ /$1 [R=301,L] 这个是把所有二级域名都重定向到 的例子,现在看来是不是很简单了?需要注意的是,这里的Options +FollowSymLinks 不是必须的,但在某些服务器如果不设置FollowSymLinks ,可能引起500错误。
. htaccess中的写法
文章标题:深度解析:如何正确使用.htaccess中的写法文章内容:一、介绍.htaccess文件的作用在网络技术中,.htaccess文件是一个Apache服务器的配置文件,它被用来配置服务器的行为。
通常情况下,.htaccess文件会被用来实现URL重写、发送自定义错误页面、限制/允许特定IP位置区域访问全球信息湾等功能。
二、初识.htaccess的语法和结构.htaccess文件的语法比较简单,主要是由一系列指令和参数组成。
在.htaccess文件中,每一条指令都是以Rewrite开头的,其后紧接着是一系列的规则和参数。
要实现URL重写功能,可以使用RewriteRule指令,然后后面跟上具体的重写规则。
三、从简单到复杂:学习.htaccess的基础写法在.htaccess文件中,最常见的用法就是实现URL重写。
通过RewriteRule指令,我们可以将原始URL重写成我们希望的形式。
将动态URL转换为静态URL,或者实现URL路径的重定向等功能。
基础的写法可以通过以下几个简单的例子来体现:1. 实现URL重写在.htaccess文件中,我们可以通过RewriteRule指令来实现URL的重写。
要将动态URL重写为静态URL,可以使用如下的写法:```RewriteEngine OnRewriteRule ^article/([0-9]+)$ /article.php?id=$1 [L]```这条规则表示,将形如/article/123的URL重写为/article.php?id=123的形式。
2. 实现URL路径的重定向除了重写功能,.htaccess文件还可以实现URL路径的重定向。
将所有访问全球信息湾根目录下的文件都重定向到一个新的子目录下,可以用如下的写法:```RewriteEngine OnRewriteRule (.*) /newfolder/$1 [R=301,L]```这条规则表示,将原始URL中的路径都重定向到/newfolder/目录下,并返回301状态码。
.htaccess中的apacherewrite规则写法详解
.htaccess中的apacherewrite规则写法详解.htaccess中的apache rewrite写法:1RewriteEngine On2RewriteCond %{HTTP_HOST} ^(www\.)?xxx\.com$3RewriteCond %{REQUEST_URI} !^/blog/4RewriteCond %{REQUEST_FILENAME} !-f5RewriteCond %{REQUEST_FILENAME} !-d6RewriteRule ^(.*)$ /blog/$17# 没有输⼊⽂件名的默认到到⾸页8RewriteCond %{HTTP_HOST} ^(www\.)?xxx\.com$9RewriteRule ^(/)?$ blog/index.php [L]下⾯我开始解说⼀下上⾯的意思:【RewriteEngine On】表⽰重写引擎开,关闭off,作⽤就是⽅便的开启或关闭以下的语句,这样就不需要⼀条⼀条的注释语句了。
【RewriteCond %{HTTP_HOST} ^(www\.)?xxx\.com$】这是重写条件,前⾯%{HTTP_HOST}表⽰当前访问的⽹址,只是指前缀部分,格式是不包括“http://”和“ /”,^表⽰字符串开始,$表⽰字符串结尾,\.表⽰转义的. ,如果不转义也⾏,推荐转义,防⽌有些服务器不⽀持,?表⽰前⾯括号www\.出现0次或1次,这句规则的意思就是如果访问的⽹址是或者 就执⾏以下的语句,不符合就跳过。
【RewriteCond %{REQUEST_URI} !^/blog/】也是重写条件,%{REQUEST_URI}表⽰访问的相对地址,就是相对根⽬录的地址,就是域名/后⾯的成分,格式上包括最前⾯的“/”,!表⽰⾮,这句语句表⽰访问的地址不以/blog/开头,只是开头^,没有结尾$【RewriteCond %{REQUEST_FILENAME} !-f】【RewriteCond %{REQUEST_FILENAME} !-d】这两句语句的意思是请求的⽂件或路径是不存在的,如果⽂件或路径存在将返回已经存在的⽂件或路径【RewriteRule ^(.*)$ /blog/$1】重写规则,最重要的部分,意思是当上⾯的RewriteCond条件都满⾜的时候,将会执⾏此重写规则,^(.*)$是⼀个正则表达的匹配,匹配的是当前请求的URL,^(.*)$意思是匹配当前URL任意字符,.表⽰任意单个字符,*表⽰匹配0次或N次(N>0),后⾯ /blog/$1是重写成分,意思是将前⾯匹配的字符重写成/blog/$1,这个$1表⽰反向匹配,引⽤的是前⾯第⼀个圆括号的成分,即^(.*)$中的.* ,其实这⼉将会出现⼀个问题,后⾯讨论。
.htaccess使用方法介绍
目录重新和重定向∙强制www∙强制www通用方法∙强制non-www∙强制non-www通用方法∙强制HTTPS∙强制HTTPS 通过代理∙强制添加末尾斜杠∙取掉末尾斜杠∙重定向到一个页面∙目录别名∙脚本别名∙重定向整个网站∙干净的URL安全∙拒绝所有访问∙拒绝所有访问(排除部分)∙屏蔽爬虫/恶意访问∙保护隐藏文件和目录∙保护备份文件和源代码文件∙禁止目录浏览∙禁止图片盗链∙禁止图片盗链(指定域名)∙密码保护目录∙密码保护文件∙通过Referrer过滤访客∙防止被别的网页嵌套性能∙压缩文件∙设置过期头信息∙关闭eTags标志其它∙设置PHP变量∙Custom Error Pages∙强制下载∙阻止下载∙运行跨域字体引用∙Auto UTF-8 Encode∙切换PHP版本∙禁止IE兼容视图支持WebP图片格式重新和重定向注意:首先需要服务器安装和启用mod_rewrite模块。
()强制wwwRewriteEngine onRewriteCond %{HTTP_HOST}^example\.com [NC]Re writeRule ^(.*)$ /$1[L,R=301,NC]强制www通用方法RewriteCond %{HTTP_HOST}!^$RewriteCond %{HTTP_HOST}!^www\. [NC]RewriteCond %{HTTPS}s ^on(s)|RewriteRule ^ http%1://www.% {HTTP_HOST}%{REQUEST_URI}[R=301,L]这种方法可以使用在任何网站中。
Source强制non-www究竟是WWW好,还是non-www好,没有定论,如果你喜欢不带www的,可以使用下面的脚本:RewriteEngine onRewriteCond %{HTTP_HOST}^www\.example\.com [NC]RewriteRule ^(.*)$ /$1[L,R=301]强制non-www通用方法RewriteEngine onRewriteCond %{HTTP_HOST}^www\.RewriteCond %{HTTPS}s^on(s)|offRewriteCond http%1://%{HTTP_HOST}^(https?://)(www\.)?(.+)$ RewriteRule ^ %1%3%{REQUEST_URI}[R=301,L]强制HTTPSRewriteEngine onRewriteCond %{HTTPS}!onRewriteRule (.*)https://%{HTTP_HOST}%{REQUEST_URI}# Note: It's also recommended to enable HTTP Strict Transport Sec urity (HSTS) # on your HTTPS website to help prevent man-in-the-middle attacks.# See https:///en-US/docs/Web/S ecurity/HTTP_strict_transport_security<IfModule mod_headers.c>Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"</IfModule>强制HTTPS 通过代理如果你使用了代理,这种方法对你很有用。
htaccess 高级规则
htaccess 高级规则在.htaccess文件中,你可以使用一些高级规则来定制你的网站的行为。
以下是一些常见的.htaccess高级规则:1. 错误处理:使用ErrorDocument指令来指定错误页面。
例如,当访问不存在的页面时,可以重定向到自定义的404错误页面。
2. 重定向:使用Redirect或RedirectMatch指令来实现页面或URL的重定向。
这可以帮助你更改网站的URL结构或将旧URL重定向到新URL。
3. 访问控制:使用Order和Allow/Deny指令来限制对特定目录或文件的访问。
你可以根据IP地址、用户代理或请求方法来允许或拒绝访问。
4. 内容过滤:使用AddType和AddHandler指令来指定文件类型和请求的处理程序。
这可以帮助你控制对特定文件类型的访问,例如禁止直接访问PHP文件。
5. 缓存控制:使用Expires和Cache-Control指令来控制页面缓存。
这可以提高网站的加载速度并减少服务器负载。
6. 自定义头部:使用Header指令来设置自定义头部信息,例如设置响应头、设置CORS策略等。
7. 限制请求方法:使用Limit指令来限制对特定目录或文件的请求方法。
例如,只允许GET和POST请求访问某个目录。
8. 防盗链:使用RewriteRule和Header指令来防止其他网站盗链你的资源。
这可以通过检查请求的Referer头来实现。
这些只是.htaccess高级规则的一部分,具体规则取决于你的需求和网站的情况。
在编写规则时,请注意测试和验证规则以确保它们按预期工作,并注意不要过度限制或混淆用户的访问权限。
htaccess常用指令
htaccess常用指令.htaccess常用指令,是一种配置文件,用于Apache服务器的配置。
它能够通过简单的指令实现一些复杂的功能,包括URL重写、网页缓存、权限控制等。
在本篇文章中,将会详细介绍.htaccess常用指令的使用方法和功能。
第一步:创建.htaccess文件首先,我们需要创建一个名为.htaccess的文件。
在Apache服务器中,该文件需要放置在站点根目录中。
如果你使用的是共享主机,可以通过FTP 工具访问站点的服务器,并在站点根目录下创建.htaccess文件。
第二步:重写URLURL重写是.htaccess常用指令中最常见的功能之一。
通过重写URL,我们能够将复杂的URL转换成简洁的形式,以提高用户体验和搜索引擎优化。
以下是常见的URL重写指令:1. RewriteEngine On该指令用于开启URL重写功能。
2. RewriteRule ^old-url new-url [L,R=301]该指令用于将old-url重写为new-url。
其中,^表示URL的起始位置,表示URL的结束位置,[L,R=301]表示该重写规则是最后一条规则,并且使用301永久重定向。
3. RewriteCond {REQUEST_FILENAME} !-dRewriteCond {REQUEST_FILENAME} !-fRewriteRule ^(.*) index.php?url=1 [QSA,L]这组指令是实现前端控制器模式的重写规则。
首先,判断请求的URL不是一个实际存在的目录,也不是一个实际存在的文件;然后,将请求重写到index.php文件,并将URL参数传递给index.php。
第三步:网页缓存.htaccess也可以用来实现网页缓存,从而提高网站的加载速度和用户体验。
以下是常见的缓存指令:1. ExpiresActive OnExpiresByType text/html "access plus 1 week"ExpiresByType image/jpeg "access plus 1 month"ExpiresByType text/css "access plus 1 month"ExpiresByType application/javascript "access plus 1 month"该组指令将为不同类型的文件设置不同的缓存时间。
Apache下htaccess的配置使用详解(原创亲测)
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 文件. 原创,转载请注明。
WordPress 的 .htaccess 规则
WordPress 的 .htaccess 规则我们知道 .htaccess 文件能轻松地强化你的博客,减少带宽并增加可用性。
我曾经写过一篇简易的 .htaccess 教程:《四个例子实战讲解.htaccess 文件rewrite 规则》。
如果你还想继续了解 .htaccess 文件,那么不妨看看下面这26个规则:但是请先记住一条黄金法则:先备份,再折腾!A – WP- Admin – 管理员页面你可以限制访问 WP- Admin 页面的 IP 地址1 2 3 order deny ,allowallow from a .b .c .d # This is your static IPdeny from all来源 B – Blacklist – 黑名单.htaccess 的一个重要功能是你能把它作为 IP 黑名单来使用: 1 2 3 4 5 <Limit GET POST PUT >order allow ,denyallow from alldeny from 123.456.789</LIMIT >来源 – Perishable PressC – WP-Config Protection – 保护 Config 页WP-Config 文件里包含了你的数据库名、数据库用户名与密码。
这样的文件你敢让别人看到吗?所以你会需要用 .htaccess 来保护它。
1 2 3 4 5# protect wpconfig.php <files wp -config.php > order allow ,deny deny from all </files > 来源 – Josiah ColeD – Disable Directory Browsing – 禁止浏览目录WP-Config 文件里包含了你的数据库名、数据库用户名与密码。
这样的文件你敢让别人看到吗?所以你会需要用 .htaccess 来保护它。
apache.htaccess文件详解和配置技巧总结
apache.htaccess⽂件详解和配置技巧总结.htaccess是⼀个纯⽂本⽂件,它⾥⾯存放着Apache服务器配置相关的指令。
.htaccess主要的作⽤有:URL重写、⾃定义错误页⾯、MIME类型配置以及访问权限控制等。
主要体现在伪静态的应⽤、图⽚防盗链、⾃定义404错误页⾯、阻⽌/允许特定IP/IP段、⽬录浏览与主页、禁⽌访问指定⽂件类型、⽂件密码保护等。
.htaccess的⽤途范围主要针对当前⽬录。
启⽤.htaccess,需要修改httpd.conf,启⽤AllowOverride,并可以⽤AllowOverride限制特定命令的使⽤。
打开httpd.conf⽂件⽤⽂本编辑器打开后,查找复制代码代码如下:<Directory />Options FollowSymLinksAllowOverride None</Directory>改为:<Directory />Options FollowSymLinksAllowOverride All</Directory>如果需要使⽤.htaccess以外的其他⽂件名,可以⽤AccessFileName指令来改变。
例如,需要使⽤.config ,则可以在服务器配置⽂件中按以下⽅法配置:复制代码代码如下:AccessFileName .config1、访问控制基础:Order命令为了限制⽤户访问⼀些关键⽬录,通常加⼊.htaccess⽂件,常见的写法如下:复制代码代码如下:<Files ~ "^.*\.([Ll][Oo][Gg])|([eE][xX][eE])">Order allow,denyDeny from all</Files>说明:(1)Files后的波浪线表⽰启⽤“正则表达式”,简单的写法有:<Files *>。
(2)Order命令:通过Allow,Deny参数,Apache⾸先找到并应⽤Allow命令,然后应⽤Deny命令,以阻⽌所有访问,也可以使⽤Deny,Allow。
HTACCESS文件详解
httpd.conf打开htaccess文件支持:Options FollowSymLinksAllowOverride AllLoadModule rewrite_module modules/mod_rewrite.sohtaccess可以设置错误页面自定义:ErrorDocument 错误代码/目录名/名.扩展名拒绝来自某个IP的访问order allow,denydeny from 210.10.56.32deny from 219.5.45.allow from all第二行拒绝某个IP,第三行拒绝某个IP段,也219.5.45.0~219.2.45.255 保护.htaccess文档order allow,denydeny from allURL转向可能对重新规划,将文档了迁移,或者更改了目录。
这,来自搜索引擎或者其他链接过来的访问就可能犯错。
这种下,如下指令来完成旧的URL自动转向到新的Redirect /旧目录/旧文档名新文档的或者整个目录的转向:Redirect 旧目录新目录改变缺省的首页DirectoryIndex 新的缺省名DirectoryIndex filename.html index.cgi index.pl default.htm二级域名下在二级目录mulu下的.htaccessErrorDocument 404 /errors/index.html<IfModule mod_rewrite.c>RewriteEngine onRewriteCond %{HTTP_HOST} ^$ //在域名下RewriteRule ^p([0-9]*)\.html$ product.php?id=$1 [L]</IfModule>域名下根目录下的.htaccessErrorDocument 404 /errors/index.html<IfModule mod_rewrite.c>RewriteEngine onRewriteCond %{HTTP_HOST} ^$ //在域名下RewriteRule ^mulu/p([0-9]*)\.html$ mulu/product.php?id=$1 [L]</IfModule>重定向到RewriteEngineOn RewriteCond %{HTTP_HOST} !$ [NC] RewriteRule ^(.*)$ /$1 [L,R=301]。
htaccess规则详细介绍
htaccess可以做大量范围的事情,包括:文件夹密码保护、用户自动重新指向、自定义错误页面、变更你的文件扩展名、屏蔽特定的用户IP地址、只允许特定的IP地址、停止目录表以及使用其他文件作为index文件,等等......1. Introduction 介绍文件名 .htaccess 属性 644 (RW-R–R–)htaccess会影响它所在目录下的所有子目录注意大多数内容都要求保持在一行之内,不要换行,否则会引起错误2. Error Documents 错误文档Official document: ErrorDocument DirectiveErrorDocument code document例子ErrorDocument 400 /errors/badrequest.htmlErrorDocument 404 http://yoursite/errors/notfound.htmlErrorDocument 401 “Authorization Required”more..less.. (注意之后内容如果出现的双引号需要转义为 \”)常见HTTP状态码Successful Client Requests200 OK201 Created202 Accepted203 Non-Authorative Information204 No Content205 Reset Content206 Partial ContentClient Request Redirected300 Multiple Choices301 Moved Permanently302 Moved Temporarily303 See Other304 Not Modified305 Use ProxyClient Request Errors400 Bad Request401 Authorization Required402 Payment Required (not used yet)403 Forbidden404 Not Found405 Method Not Allowed406 Not Acceptable (encoding)407 Proxy Authentication Required408 Request Timed Out409 Conflicting Request410 Gone411 Content Length Required412 Precondition Failed413 Request Entity Too Long414 Request URI Too Long415 Unsupported Media TypeServer Errors500 Internal Server Error501 Not Implemented502 Bad Gateway503 Service Unavailable504 Gateway Timeout505 HTTP Version Not Supported3. Password Protection 密码保护Official document: Authentication, Authorization and Access Control假设密码文件为.htpasswdAuthUserFile /usr/local/safedir/.htpasswd (这里必须使用全路径名)AuthName EnterPasswordAuthType Basic两种常见验证方式:Require user windix(仅允许用户windix登陆)Require valid-user(所有合法用户都可登陆)Tip: 如何生成密码文件使用htpasswd命令(apache自带)第一次生成需要创建密码文件htpasswd -c .htpasswd user1之后增加新用户htpasswd .htpasswd user24. Enabling SSI Via htaccess 通过htaccess允许SSI(Server Side Including)功能AddType text/html .shtmlAddHandler server-parsed .shtmlOptions Indexes FollowSymLinks IncludesDirectoryIndex index.shtml index.html5. Blocking users by IP 根据IP阻止用户访问order allow,denydeny from 123.45.6.7deny from 12.34.5. (整个C类地址)allow from all6. Blocking users/sites by referrer 根据referrer阻止用户/站点访问需要mod_rewrite模块例1. 阻止单一referrer: RewriteEngine on# Options +FollowSymlinksRewriteCond %{HTTP_REFERER} badsite\.com [NC]RewriteRule .* - [F]例2. 阻止多个referrer: , RewriteEngine on# Options +FollowSymlinksRewriteCond %{HTTP_REFERER} badsite1\.com [NC,OR]RewriteCond %{HTTP_REFERER} badsite2\.comRewriteRule .* - [F][NC] - 大小写不敏感(Case-insensite)[F] - 403 Forbidden注意以上代码注释掉了”Options +FollowSymlinks”这个语句。
htaccess伪静态规则
htaccess伪静态规则htaccess伪静态规则是指在Apache服务器上使用的配置文件,用于定义在网页浏览器中访问Web网站时,怎样匹配指定页面才会返回正确的相应页面。
通常,我们使用.htaccess文件在Apache Web服务器上实现伪静态,即在不修改服务器设置的情况下,使用URL重写技术来改变/隐藏真实URL,从而实现伪静态效果。
伪静态规则是由RewriteRule来配置的,可以使用Apache内部函数RewriteFunction进行多种形式的替换策略。
RewriteRule的格式如下:RewriteRule Pattern Substitution [Flag]其中,Pattern参数指的是模式字符串,Substitution参数指的是替换字符串,Flag参数指的是匹配模式的标志。
在实现htaccess伪静态规则时,常用的RewriteRule Flag参数包括:[L] —表示每一组重写规则只匹配一次,该参数用来阻止将匹配到的URL重复多次;[R] —表示将匹配到的URL重定向到指定的URL;[N] —启动 RewriteRule 指令组中下一个指令;[PT] —使用PathTranslated来让后端程序获取重写后的真实URL。
常用的Apache内部函数RewriteFunction有:RewriteCond —添加一个条件判断,仅当使用rewrite到的URL符合该条件时,才会触发rewrite操作;RewriteMap —用于映射一对对应的key-value 值,并在满足条件时将指定值替换到URL中;RewriteBase —使用一个相对路径来描述RewriteRule指令添加到htaccess文件中的基本目录。
使用htaccess伪静态规则之前,首先要将Apache的mod_rewrite 模块激活,重新启动Apache服务器,使其支持URL重写功能;然后,在Apache网站根目录下,添加 .htaccess 文件,在文件中添加RewriteRule规则,以及RewriteFunction等函数,实现替换重定向等伪静态URL匹配效果;最后,使用Apache的 RewriteBase 指令,把RewriteRule 的地址规则设定,完成URL重写配置。
htaccess文件
.htaccess文件(分布式配置文件)介绍一、.htaccess文件用来对apache服务器进行配置,其所能实现的功能在主配置文件(http.conf)中均可实现二、优点:1、可针对不同的项目进行不同的配置2、无需重启服务器即可进行配置三、缺点、.htaccess文件会降低服务器的运行性能。
四、.htaccess运行条件在http.conf中AllowOverride不能为None五、拒绝或允许用户访问:1、拒绝所以用户访问:order allow,denydeny from all2、允许所有人访问:Allow from All3、拒绝单个IP访问deny from 192.168.105.2014、拒绝整个IP段访问deny from 192.168.105.六、密码验证:AuthName "please input password" 验证提示AuthType BasicAuthUserFile /var/www/html/chenyifei/.htpasswd.txt 验证文件Require valid-user2、密码文件生成htpasswd -cm /var/www/html/chenyifei/.htpasswd.txt cyfei追加密码:htpasswd -bm /var/www/html/chenyifei/.htpasswd.txt admin admin七、错误信息显示:ErrorDocument 403 "you can not visit this" 直接显示错误信息ErrorDocument 403 /chenyifei/error403.html 转向错误提示文件常见错误信息请求如下:400 - Bad request 错误请求401 Authorization Required需要验证403 Forbidden禁止404 Not Found找不到页面405 Method Not Allowed408 Request Timed Out411 Content Length Required412 Precondition Failed413 Request Entity Too Long414 Request URI Too Long415 Unsupported Media Type八、防止列出所有目录Options –Indexes九、改变缺省首页DirectoryIndex index.html index.php login.php十、伪静态RewriteEngine onRewriteRule index.html login.phpRewriteEngine onRewriteRule ^([a-zA-Z]+)¥.html$ $1¥.php [L]RewriteRule^([a-zA-Z]+)-([a-zA-Z]+)-([0-9]+)(.*)¥.html$ $1¥.php¥?$2=$3 [QSA,L]。
htaccess 语法
htaccess 语法.htaccess 是一个用于配置 Apache 服务器的文件。
它使用基于规则的语法,允许用户对服务器行为进行细粒度的控制。
本文将介绍.htaccess 的基本语法和一些常用的配置指令,以帮助读者更好地理解和使用.htaccess 文件。
.htaccess 文件的基本语法如下:- 每一行代表一个指令或一个注释。
- 注释以 '#' 开头,可以用于解释配置的目的。
- 指令由指令名称和参数组成,中间使用一个或多个空格分隔。
- 指令名称不区分大小写,但参数可能是区分大小写的。
下面是一些常用的.htaccess 配置指令:1. RewriteEngine这是一个非常重要的指令,用于启用或禁用URL 重写功能。
要使用 URL 重写规则,必须先启用 RewriteEngine。
参数为'on' 表示启用,'off' 表示禁用。
示例: RewriteEngine on2. RewriteBase这个指令定义了重写规则中的基本 URL 路径。
如果你的网站在子目录中,你需要使用 RewriteBase 来设置基本路径。
示例: RewriteBase /subdirectory/3. RewriteRule这个指令定义了一个 URL 重写规则。
它使用正则表达式匹配 URL,并将匹配的 URL 重写为指定的目标 URL。
示例: RewriteRule ^old_url$ /new_url [R=301,L]4. Redirect这个指令用于重定向指定的 URL。
它可以用于永久或临时重定向。
示例: Redirect 301 /old_url /new_url5. Header这个指令用于设置响应的 HTTP 头信息。
示例: Header set Content-Type text/html6. ErrorDocument这个指令用于自定义错误页面。
它定义了当服务器返回指定错误码时应显示的页面。
thinkphp htaccess伪静态规则
thinkphp htaccess伪静态规则在ThinkPHP框架中,可以使用.htaccess文件来实现伪静态规则。
下面是一个常见的ThinkPHP伪静态规则示例:```apache<IfModule mod_>RewriteEngine onRewriteRule ^index\.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . / [L]</IfModule>```这个规则的作用是:1. `RewriteEngine on`:启用Apache的URL重写引擎。
2. `RewriteRule ^index\.php$ - [L]`:将所有以``开头的URL重写为``,并且不进行其他重写。
3. `RewriteCond %{REQUEST_FILENAME} !-f`:如果请求的URL对应的文件不存在。
4. `RewriteCond %{REQUEST_FILENAME} !-d`:如果请求的URL对应的目录不存在。
5. `RewriteRule . / [L]`:将所有符合条件的请求重写到``,并且不进行其他重写。
这样设置后,你可以将URL中的动态部分映射到ThinkPHP的控制器和操作方法上,从而实现伪静态的效果。
例如,将URL 映射到控制器`UserController` 的 `read` 操作方法上。
在ThinkPHP中,你需要创建一个名为 `UserController` 的控制器类,并在其中定义 `read` 方法来处理这个请求。
apache伪静态通用规则
apache伪静态通用规则Apache伪静态是针对网站URL地址进行的一种处理,可以将动态的URL转换成静态的URL,这样可以增加网站的美观性和可读性,同时也可以增加网站的引擎可见性,促进网站SEO优化。
Apache服务器通过.htaccess文件进行伪静态配置,通常情况下,只需要编写一套通用规则,对不同的网站进行适配即可。
在编写规则时,需要注意以下几点:1、规则书写要求简洁明了在编写规则时,需要遵循KISS原则(Keep it Simple and Stupid),尽量简洁明了,不要复杂化规则,以免出现错误,影响网站的正常访问。
2、规则编写要注意语法Apache伪静态的规则采用正则表达式语法,因此在编写时需要遵循正则表达式的编写规范,以保证规则的准确性和安全性。
3、规则应该具有通用性在编写规则时,需要具有通用性,可以适应各种条件和情况,保证规则适用于各种网站的伪静态需求。
例如对于动态的URL,可以通过修改规则将其转换为静态的URL,以便更好地满足网站的SEO优化需求。
下面是一套通用的Apache伪静态规则:RewriteEngine On#以下是对于静态文件和文件夹的重写规则RewriteRule ^css/(.某)$ /style/$1 [L,QSA]RewriteRule ^js/(.某)$ /scripts/$1 [L,QSA]RewriteRule ^images/(.某)$ /img/$1 [L,QSA]RewriteRule ^uploads/(.某)$ /uploader/$1 [L,QSA]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-d#以下是对于动态URL的重写规则RewriteRule ^product/(.某)$ /product.php?id=$1 [L,QSA]RewriteRule ^category/(.某)$ /category.php?id=$1 [L,QSA]RewriteRule ^search/(.某)$ /search.php?key=$1 [L,QSA]以上是一套通用的Apache伪静态规则,其中包含了对于静态文件的重写规则,以及对于动态URL的重写规则,在不同的网站中可以适当地进行调整和修改,以满足不同的需求。
.htaccessrewrite规则详细说明
.htaccessrewrite规则详细说明rewrite的语法格式:1. RewriteEngine On #要想rewrite起作⽤,必须要写上哦2. RewriteBase url-path #设定基准⽬录,例如希望对根⽬录下的⽂件rewrtie,就是”/”3. RewriteCond test-string condPattern #写在RewriteRule之前,可以有⼀或N条,⽤于测试rewrite的匹配条件,具体怎么写,后⾯会详细说到。
4. RewriteRule Pattern Substitution #规则RewriteEngine On|OffRewriteEngine ⽤于开启或停⽤rewrite功能。
rewrite configurations 不会⾃动继承,因此你得给每个你想⽤ rewrite功能的虚拟主机⽬录中加上这个指令。
RewriteBase URL-pathRewriteBase⽤于设定重写的基准URL。
在下⽂中,你可以看见RewriteRule可以⽤于⽬录级的配置⽂件中 (.htaccess)并在局部范围内起作⽤,即规则实际处理的只是剥离了本地路径前缀的⼀部分。
处理结束后,这个路径会被⾃动地附着回去。
默认值是”RewriteBase physical-directory-path”。
在对⼀个新的URL进⾏替换时,此模块必须把这个URL重新注⼊到服务器处理中。
为此,它必须知道其对应的URL前缀或者说URL基准。
通常,此前缀就是对应的⽂件路径。
但是,⼤多数⽹站URL不是直接对应于其物理⽂件路径的,因⽽⼀般不能做这样的假定! 所以在这种情况下,就必须⽤RewriteBase指令来指定正确的URL前缀。
如果你的⽹站服务器URL不是与物理⽂件路径直接对应的,⽽⼜需要使⽤RewriteBase指令,则必须在每个对应的.htaccess⽂件中指定RewriteRule 。
apache .htaccess 规则
一、什么是.htaccess文件.htaccess文件是Apache服务器上的一个设置文件。
它是一个文本文件,可以使用任何文本编辑器进行编写。
.htaccess文件提供了针对目录改变配置的方法,即通过在一个特定的文档目录中放置一个包含一个或多个指令的文件(.htaccess文件),以作用于此目录及其所有子目录。
.htaccess的功能包括设置网页密码、设置发生错误时出现的文件、改变首页的文件名(如index.html)、禁止读取文件名、重新导向文件、加上MIME类别、禁止列目录下的文件等。
在需要针对目录改变服务器的配置,而对服务器系统没有root权限时,应该使用.htaccess文件。
如果服务器管理员不愿意频繁修改配置,则可以允许用户通过.htaccess文件自己修改配置,尤其是ISP在一台机器上提供多个用户站点,而又希望用户可以自己改变配置的情况下,一般会开放部分.htaccess的功能给使用者自行设置。
注意:.htaccess是一个完整的文件名,不是***.htaccess或其它格式(当然也有管理员把其设置成其它名字,但一般都是使用.htaccess)。
另外,上传.htaccess文件时,必须使用ASCII模式,并使用chmod命令改变权限为:644(RW_R__R__)。
每一个放置.htaccess的目录和其子目录都会被.htaccess影响。
例如,在/abc/目录下放置了一个.htaccess文件,那么/abc/和/abc/def/内所有的文件都会被它影响,但/index.html不会被它影响,这一点是很重要的。
二、使用.htaccess配置文件在配置Apache时,除了可以在主配置文件(http.conf)中配置访问控制之外,还可以使用.htaccess 文件配置对指定目录的访问控制。
使用.htaccess文件可以改变主配置文件中的配置,但是它只能设置对指定目录的访问控制,这个目录就是.htaccess文件存放的目录。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
htaccess可以做大量范围的事情,包括:文件夹密码保护、用户自动重新指向、自定义错误页面、变更你的文件扩展名、屏蔽特定的用户IP地址、只允许特定的IP地址、停止目录表以及使用其他文件作为index文件,等等......1. Introduction 介绍文件名 .htaccess 属性644 (RW-R–R–)htaccess会影响它所在目录下的所有子目录注意大多数内容都要求保持在一行之内,不要换行,否则会引起错误2. Error Documents 错误文档Official document: ErrorDocument DirectiveErrorDocument code document例子ErrorDocument 400 /errors/badrequest.htmlErrorDocument 404 http://yoursite/errors/notfound.htmlErrorDocument 401 “Authorization Required”more..less.. (注意之后内容如果出现的双引号需要转义为\”)常见HTTP状态码Successful Client Requests200 OK201 Created202 Accepted203 Non-Authorative Information204 No Content205 Reset Content206 Partial ContentClient Request Redirected300 Multiple Choices301 Moved Permanently302 Moved Temporarily303 See Other304 Not Modified305 Use ProxyClient Request Errors400 Bad Request401 Authorization Required402 Payment Required (not used yet)403 Forbidden404 Not Found405 Method Not Allowed406 Not Acceptable (encoding)407 Proxy Authentication Required408 Request Timed Out409 Conflicting Request410 Gone411 Content Length Required412 Precondition Failed413 Request Entity Too Long414 Request URI Too Long415 Unsupported Media TypeServer Errors500 Internal Server Error501 Not Implemented502 Bad Gateway503 Service Unavailable504 Gateway Timeout505 HTTP Version Not Supported3. Password Protection 密码保护Official document: Authentication, Authorization and Access Control假设密码文件为.htpasswdAuthUserFile /usr/local/safedir/.htpasswd (这里必须使用全路径名)AuthName EnterPasswordAuthType Basic两种常见验证方式:Require user windix(仅允许用户windix登陆)Require valid-user(所有合法用户都可登陆)Tip: 如何生成密码文件使用htpasswd命令(apache自带)第一次生成需要创建密码文件htpasswd -c .htpasswd user1之后增加新用户htpasswd .htpasswd user24. Enabling SSI Via htaccess 通过htaccess允许SSI(Server Side Including)功能AddType text/html .shtmlAddHandler server-parsed .shtmlOptions Indexes FollowSymLinks IncludesDirectoryIndex index.shtml index.html5. Blocking users by IP 根据IP阻止用户访问order allow,denydeny from 123.45.6.7deny from 12.34.5. (整个C类地址)allow from all6. Blocking users/sites by referrer 根据referrer阻止用户/站点访问需要mod_rewrite模块例1. 阻止单一referrer: RewriteEngine on# Options +FollowSymlinksRewriteCond %{HTTP_REFERER} badsite\.com [NC]RewriteRule .* - [F]例2. 阻止多个referrer: , RewriteEngine on# Options +FollowSymlinksRewriteCond %{HTTP_REFERER} badsite1\.com [NC,OR]RewriteCond %{HTTP_REFERER} badsite2\.comRewriteRule .* - [F][NC] - 大小写不敏感(Case-insensite)[F] - 403 Forbidden注意以上代码注释掉了”Options +FollowSymlinks”这个语句。
如果服务器未在httpd.conf 的段落设置FollowSymLinks, 则需要加上这句,否则会得到”500 Internal Server erro r”错误。
7. Blocking bad bots and site rippers (aka offline browsers) 阻止坏爬虫和离线浏览器需要mod_rewrite模块坏爬虫? 比如一些抓垃圾email地址的爬虫和不遵守robots.txt的爬虫(如baidu?)可以根据HTTP_USER_AGENT 来判断它们(但是还有更无耻的如”中搜”之流把自己的agent设置为“Mozilla/4.0 (compatible; MSIE 5.5; Window s NT 5.0)” 太流氓了,就无能为力了) RewriteEngine OnRewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR]RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:craftbot@ [OR] RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR]RewriteCond %{HTTP_USER_AGENT} ^Custo [OR]RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR]RewriteCond %{HTTP_USER_AGENT} ^Download\ Demon [OR] RewriteCond %{HTTP_USER_AGENT} ^eCatch [OR]RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [OR]RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR]RewriteCond %{HTTP_USER_AGENT} ^Express\ WebPictures [OR] RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [OR]RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE [OR]RewriteCond %{HTTP_USER_AGENT} ^FlashGet [OR]RewriteCond %{HTTP_USER_AGENT} ^GetRight [OR]RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [OR] RewriteCond %{HTTP_USER_AGENT} ^Go-Ahead-Got-It [OR] RewriteCond %{HTTP_USER_AGENT} ^GrabNet [OR] RewriteCond %{HTTP_USER_AGENT} ^Grafula [OR] RewriteCond %{HTTP_USER_AGENT} ^HMView [OR] RewriteCond %{HTTP_USER_AGENT} HTTrack [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^Image\ Stripper [OR] RewriteCond %{HTTP_USER_AGENT} ^Image\ Sucker [OR] RewriteCond %{HTTP_USER_AGENT} Indy\ Library [NC,OR] RewriteCond %{HTTP_USER_AGENT} ^InterGET [OR] RewriteCond %{HTTP_USER_AGENT} ^Internet\ Ninja [OR] RewriteCond %{HTTP_USER_AGENT} ^JetCar [OR]RewriteCond %{HTTP_USER_AGENT} ^JOC\ Web\ Spider [OR] RewriteCond %{HTTP_USER_AGENT} ^larbin [OR]RewriteCond %{HTTP_USER_AGENT} ^LeechFTP [OR] RewriteCond %{HTTP_USER_AGENT} ^Mass\ Downloader [OR] RewriteCond %{HTTP_USER_AGENT} ^MIDown\ tool [OR] RewriteCond %{HTTP_USER_AGENT} ^Mister\ PiX [OR] RewriteCond %{HTTP_USER_AGENT} ^Navroad [OR] RewriteCond %{HTTP_USER_AGENT} ^NearSite [OR] RewriteCond %{HTTP_USER_AGENT} ^NetAnts [OR] RewriteCond %{HTTP_USER_AGENT} ^NetSpider [OR] RewriteCond %{HTTP_USER_AGENT} ^Net\ Vampire [OR] RewriteCond %{HTTP_USER_AGENT} ^NetZIP [OR]RewriteCond %{HTTP_USER_AGENT} ^Octopus [OR] RewriteCond %{HTTP_USER_AGENT} ^Offline\ Explorer [OR] RewriteCond %{HTTP_USER_AGENT} ^Offline\ Navigator [OR] RewriteCond %{HTTP_USER_AGENT} ^PageGrabber [OR] RewriteCond %{HTTP_USER_AGENT} ^Papa\ Foto [OR] RewriteCond %{HTTP_USER_AGENT} ^pavuk [OR]RewriteCond %{HTTP_USER_AGENT} ^pcBrowser [OR] RewriteCond %{HTTP_USER_AGENT} ^RealDownload [OR] RewriteCond %{HTTP_USER_AGENT} ^ReGet [OR]RewriteCond %{HTTP_USER_AGENT} ^SiteSnagger [OR] RewriteCond %{HTTP_USER_AGENT} ^SmartDownload [OR] RewriteCond %{HTTP_USER_AGENT} ^SuperBot [OR] RewriteCond %{HTTP_USER_AGENT} ^SuperHTTP [OR] RewriteCond %{HTTP_USER_AGENT} ^Surfbot [OR] RewriteCond %{HTTP_USER_AGENT} ^tAkeOut [OR] RewriteCond %{HTTP_USER_AGENT} ^Teleport\ Pro [OR] RewriteCond %{HTTP_USER_AGENT} ^VoidEYE [OR] RewriteCond %{HTTP_USER_AGENT} ^Web\ Image\ Collector [OR] RewriteCond %{HTTP_USER_AGENT} ^Web\ Sucker [OR]RewriteCond %{HTTP_USER_AGENT} ^WebCopier [OR]RewriteCond %{HTTP_USER_AGENT} ^WebFetch [OR]RewriteCond %{HTTP_USER_AGENT} ^WebGo\ IS [OR]RewriteCond %{HTTP_USER_AGENT} ^WebLeacher [OR]RewriteCond %{HTTP_USER_AGENT} ^WebReaper [OR]RewriteCond %{HTTP_USER_AGENT} ^WebSauger [OR]RewriteCond %{HTTP_USER_AGENT} ^Website\ eXtractor [OR] RewriteCond %{HTTP_USER_AGENT} ^Website\ Quester [OR] RewriteCond %{HTTP_USER_AGENT} ^WebStripper [OR]RewriteCond %{HTTP_USER_AGENT} ^WebWhacker [OR]RewriteCond %{HTTP_USER_AGENT} ^WebZIP [OR]RewriteCond %{HTTP_USER_AGENT} ^Wget [OR]RewriteCond %{HTTP_USER_AGENT} ^Widow [OR]RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [OR]RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [OR] RewriteCond %{HTTP_USER_AGENT} ^ZeusRewriteRule ^.* - [F,L][F] - 403 Forbidden[L] - ?8. Change your default directory page 改变缺省目录页面DirectoryIndex index.html index.php index.cgi index.pl9. Redirects 转向单个文件Redirect /old_dir/old_file.html /new_dir/new_file.html整个目录Redirect /old_dir /new_dir效果: 如同将目录移动位置一样/old_dir -> /new_dir/old_dir/dir1/test.html -> /new_dir/dir1/test.htmlTip: 使用用户目录时Redirect不能转向的解决方法当你使用Apache默认的用户目录,如/~windix,当你想转向/~windix/jump时,你会发现下面这个Redirect不工作: Redirect /jump 正确的方法是改成Redirect /~windix/jump (source: .htaccess Redirect in “Sites” not redirecting: why?)10. Prevent viewing of .htaccess file 防止.htaccess文件被查看order allow,denydeny from all11. Adding MIME Types 添加MIME 类型AddType application/x-shockwave-flash swfTips: 设置类型为application/octet-stream 将提示下载12. Preventing hot linking of images and other file types 防盗链需要mod_rewrite模块RewriteEngine onRewriteCond %{HTTP_REFERER} !^$RewriteCond %{HTTP_REFERER} !^http://(www/\.)?/.*$ [NC] RewriteRule \.(gif|jpg|js|css)$ - [F]解析:若HTTP_REFERER 非空(来源为其他站点,非直接连接) 并且若HTTP_REFERER 非(www.)开头(忽略大小写[NC]) (来源非本站) 对于所有含有 .gif/.jpg/.js/.css 结尾的文件给出403 Forbidden 错误[F]也可指定响应,如下例显示替换图片RewriteRule \.(gif|jpg)$[R,L][R] - 转向(Redirect)[L] - 连接(Link)13. Preventing Directory Listing 防止目录列表时显示IndexIgnore *IndexIgnore *.jpg *.gifTips:允许目录列表显示: Options +Indexes禁止目录列表显示: Options -Indexes显示提示信息: 页首文件HEADER, 页尾文件README。