.htaccess功能解析(转)

.htaccess重写、安全防护、文件访问权限

今天在《外刊IT评论》上看见了关于.htaccess的使用总结,觉得很不错的,因为wp博客还有其他的php的web服务站点好多都是用.htaccess来管理比如效率以及安全的问题,有必要来学习一下。

1.时区设置

有些时候,当你在PHP里使用date或mktime函数时,由于时区的不同,它会显示出一些很奇怪的信息。下面是解决这个问题的方法之一。就是设置你的服务器的时区。你可以在这里找到所有支持的时区的清单。

  1. SetEnv TZ Australia/Melbourne

2. 搜索引擎友好的301永久转向方法

为什么这是搜索引擎友好的呢?因为现在很多现代的搜索引擎都有能根据检查301永久转向来更新它现有的记录的功能。

  1. Redirect 301 http://www.aqee.net/home http://www.aqee.net/

3. 屏蔽下载对话框

通常,当你下载东西的时候,你会看到一个对话框询问你是保持这个文件还是直接打开它。如果你不想看到这个东西,你可以把下面的一段代码放到你的.htaccess文件里。

  1. AddType application/octet-stream .pdf
  2. AddType application/octet-stream .zip
  3. AddType application/octet-stream .mov

4. 省去www前缀

SEO的一个原则是,确保你的网站只有一个URL。因此,你需要把所有的通过www的访问转向的非www,或者反这来。

  1. RewriteEngine On
  2. RewriteBase /
  3. RewriteCond %{HTTP_HOST} ^www.aqee.net [NC]
  4. RewriteRule ^(.*)$ http://aqee.net/$1 [L,R=301]

5. 个性化Error页面

对每个错误代码定制自己个性化的错误页面。

  1. ErrorDocument 401 /error/401.php
  2. ErrorDocument 403 /error/403.php
  3. ErrorDocument 404 /error/404.php
  4. ErrorDocument 500 /error/500.php

6. 压缩文件

通过压缩你的文件体积来优化网站的访问速度。

  1. 压缩 text, html, javascript, css, xml:

  2. AddOutputFilterByType DEFLATE text/plain
  3. AddOutputFilterByType DEFLATE text/html
  4. AddOutputFilterByType DEFLATE text/xml
  5. AddOutputFilterByType DEFLATE text/css
  6. AddOutputFilterByType DEFLATE application/xml
  7. AddOutputFilterByType DEFLATE application/xhtml+xml
  8. AddOutputFilterByType DEFLATE application/rss+xml
  9. AddOutputFilterByType DEFLATE application/javascript
  10. AddOutputFilterByType DEFLATE application/x-javascript

7. 缓存文件

缓存文件是另外一个提高你的网站访问速度的好方法。

  1. <FilesMatch “.(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$”>
  2. Header set Cache-Control “max-age=2592000″
  3. </FilesMatch>

8. 对某些文件类型禁止使用缓存

而另一方面,你也可以定制对某些文件类型禁止使用缓存。

  1. 显式的规定对脚本和其它动态文件禁止使用缓存

  2. <FilesMatch “.(pl|php|cgi|spl|scgi|fcgi)$”>
  3. Header unset Cache-Control
  4. </FilesMatch>

安全问题

下面的htaccess代码能够提高你的web服务器的安全水平。图片链接盗用保护非常有用,它能防止其他人偷盗使用你的服务器上的图片资源。

1. 通过.htaccess放盗链

痛恨那些偷盗链接你的web服务器上的图片资源而耗尽了你的带宽的行为吗?试试这个,你可以防止这种事情的发生。

  1. RewriteBase /
  2. RewriteCond %{HTTP_REFERER} !^$
  3. RewriteCond %{HTTP_REFERER} !^http://(www.) aqee.net/.*$ [NC]
  4. RewriteRule .(gif|jpg|swf|flv|png)$ /feed/ [R=302,L]

2. 防黑客

如果你想提高网站的安全等级,你可以去掉下面的几行代码,这样可以防止一些常见恶意URL匹配的黑客攻击技术。

  1. RewriteEngine On
  2. proc/self/environ 没门!

  3. RewriteCond %{QUERY_STRING} proc/self/environ [OR]
  4. 阻止脚本企图通过URL修改mosConfig值

  5. RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|%3D) [OR]
  6. 阻止脚本通过URL传递的base64_encode垃圾信息

  7. RewriteCond %{QUERY_STRING} base64_encode.(.) [OR]
  8. 阻止在URL含有<script>标记的脚本

  9. RewriteCond %{QUERY_STRING} (<|%3C).script.(>|%3E) [NC,OR]
  10. 阻止企图通过URL设置PHP的GLOBALS变量的脚本

  11. RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR]
  12. 阻止企图通过URL设置PHP的_REQUEST变量的脚本

  13. RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0-9A-Z]{0,2})
  14. 把所有被阻止的请求转向到403禁止提示页面!

  15. RewriteRule ^(.*)$ index.php [F,L]

3. 阻止访问你的 .htaccess 文件

下面的代码可以阻止别人访问你的.htaccess文件。同样,你也可以设定阻止多种文件类型。

  1. 保护你的 htaccess 文件
  2. <Files .htaccess>
  3. order allow deny
  4. deny from all
  5. </Files>
  6. 阻止查看指定的文件
  7. <Files secretfile.jpg>
  8. order allow,deny
  9. deny from all
  10. </Files>
  11. 多种文件类型
  12. <FilesMatch “.(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$”>
  13. Order Allow,Deny
  14. Deny from all
  15. </FilesMatch>

4. 重命名 htaccess 文件

你可以通过重命名htaccess文件来对其进行保护。

  1. AccessFileName htacc.ess

5. 禁止目录浏览

禁止服务器对外显示目录结构,反之亦然。

  1. 禁止目录浏览
  2. Options All -Indexes
  3. 开放目录浏览

  4. Options All +Indexes

6. 改变缺省的Index页面

你可以把缺省的 index.html, index.php 或 index.htm 改成其它页面。

  1. DirectoryIndex business.html

7. 通过引用信息来阻止某些不欢迎的浏览者

  1. 阻止来自某网站的用户

  2. <IfModule mod_rewrite.c>
  3. RewriteEngine on
  4. RewriteCond %{HTTP_REFERER} scumbag.com [NC,OR]
  5. RewriteCond %{HTTP_REFERER} wormhole.com [NC,OR]
  6. RewriteRule .* - [F]
  7. </ifModule>

8. 通过判断浏览器头信息来阻止某些请求

这个方法可以通过阻止某些机器人或蜘蛛爬虫抓取你的网站来节省你的带宽流量。

  1. 阻止来自某些特定网站的用户
  2. <IfModule mod_rewrite.c>
  3. SetEnvIfNoCase ^User-Agent$ .*(craftbot|download|extract|stripper|sucker|ninja|clshttp|webspider
    |leacher|collector|grabber|webpictures) HTTP_SAFE_BADBOT
  4. SetEnvIfNoCase ^User-Agent$ .*(libwww-perl|aesop_com_spiderman) HTTP_SAFE_BADBOT
  5. Deny from env=HTTP_SAFE_BADBOT
  6. </ifModule>

9. 禁止脚本执行,加强你的目录安全

  1. 禁止某些目录里的脚本执行权限
  2. AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi
  3. Options -ExecCGI
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,752评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,100评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,244评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,099评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,210评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,307评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,346评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,133评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,546评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,849评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,019评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,702评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,331评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,030评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,260评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,871评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,898评论 2 351

推荐阅读更多精彩内容

  • 此文章转载~ Apache伪静态(Rewrite).htaccess文件详解 Htaccess(超文本访问)是一个...
    bornfreekiss阅读 4,118评论 0 6
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,644评论 18 139
  • 什么是HTTP Headers HTTP是“Hypertext Transfer Protocol”的所写,整个万...
    苏文星阅读 2,651评论 0 4
  • php.ini设置,上传大文件: post_max_size = 128Mupload_max_filesize ...
    bycall阅读 6,744评论 3 64
  • 一、 郑阳县许久没有嫁娶了,今日的送亲队伍自然比以往倍受关注。原本喑哑沉闷听不出喜意的喇叭唢呐渐行渐远,淹没在嘈杂...
    书姝阅读 1,306评论 6 13