【外刊IT评论】Htaccess文件用法集锦

标签: 技术技巧 htaccess | 发表时间:2010-12-02 00:21 | 作者:admin flogliu
出处:http://www.aqee.net

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.   
  3. # proc/self/environ? 没门!  
  4. RewriteCond %{QUERY_STRING} proc/self/environ [OR]  
  5.   
  6. # 阻止脚本企图通过URL修改mosConfig值  
  7. RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]  
  8.   
  9. # 阻止脚本通过URL传递的base64_encode垃圾信息  
  10. RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR]  
  11.   
  12. # 阻止在URL含有<script>标记的脚本  
  13. RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]  
  14.   
  15. # 阻止企图通过URL设置PHP的GLOBALS变量的脚本  
  16. RewriteCond %{QUERY_STRING} GLOBALS(=|[|\%[0-9A-Z]{0,2}) [OR]  
  17.   
  18. # 阻止企图通过URL设置PHP的_REQUEST变量的脚本  
  19. RewriteCond %{QUERY_STRING} _REQUEST(=|[|\%[0-9A-Z]{0,2})  
  20.   
  21. # 把所有被阻止的请求转向到403禁止提示页面!  
  22. 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. # 阻止查看指定的文件  
  8. <Files secretfile.jpg>  
  9.  order allow,deny  
  10.  deny from all  
  11. </Files>  
  12.   
  13. # 多种文件类型  
  14. <FilesMatch “.(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$”>  
  15.  Order Allow,Deny  
  16.  Deny from all  
  17. </FilesMatch>  

4. 重命名 htaccess 文件

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

  1. AccessFileName htacc.ess  

5. 禁止目录浏览

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

  1. # 禁止目录浏览  
  2. Options All -Indexes  
  3.   
  4. # 开放目录浏览
  5. 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.    
  8. </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  

[英文出处]:Link

[译文来源]:外刊IT评论



© 外刊IT评论, 2010. | 永久链接:Htaccess文件用法集锦 | No comment | Add to del.icio.us
Post tags:


相关 [it htaccess 文件] 推荐:

【外刊IT评论】Htaccess文件用法集锦

- flogliu - 外刊IT评论
有些时候,当你在PHP里使用date或mktime函数时,由于时区的不同,它会显示出一些很奇怪的信息. 你可以在这里找到所有支持的时区的清单. 搜索引擎友好的301永久转向方法. 因为现在很多现代的搜索引擎都有能根据检查301永久转向来更新它现有的记录的功能. 通常,当你下载东西的时候,你会看到一个对话框询问你是保持这个文件还是直接打开它.

通过.htaccess对手机与PC终端分流呈现页面

- - 傻子-王跸西的blog-WangBiXi.com
对于使用手机终端访问PC版页面的,跳转到手机版网页. 对于PC终端访问手机版页面的,跳转到PC版网页. .htaccess文件中内容:. #上面的例子就是如果访问终端为Iphone,则跳转到http://www.yoursite.com/monile/这个页面. #.htaccess对所在文件夹下的页面文件及其子目录下的页面文件皆有效.

分享14个有用的.htaccess代码段和技巧

- - 博客园_首页
htaccess的是一个文件,每一个网络管理员应该知道和了解. 但仍然有很多,你应该知道的的,在这篇文章中的片段会告诉你. 如何来做才能更好的让网站性能发挥到最佳. 密码保护是一回事,但有时你可能需要完全阻止用户访问一个特定的文件或目录的选项. 这通常发生在系统文件夹,如 包括文件夹,应用程序需要访问,但没有用户会以往任何时候都需要的特权.

python 下载文件

- Eric - python相关的python 教程和python 下载你可以在老王python里寻觅
之前给大家分享的python 多线程抓取网页,我觉的大家看了以后,应该会对python 抓取网页有个很好的认识,不过这个只能用python 来抓取到网页的源代码,如果你想用做python 下载文件的话,上面的可能就不适合你了,最近我在用python 做文件下载的时候就遇到这个问题了,不过最终得以解决,为了让大家以后碰过这个问题有更好的解决办法,我把代码发出来:.

Ext文件系统

- Haides - 博客园-首页原创精华区
  虽然从Ext2到Ext4,找数据的方式发生了变化,但是,磁盘的布局还是非常相似的. 其实这个东西也不需要变化,因为现在也没什么特别巧妙的方式,而且磁盘的吞吐量、效率的瓶颈也不在这里. 当然,这里排除那些根据自身文件特点设计的数据库,毕竟还是为了支持通用文件.   Boot在第一个块,放的应该是引导程序,超级块就放在了第二个块上,如果不是可以在mount的时候通过参数sb来设置.

Linux 文件结构

- Shiina Luce - OSMSG
想了解 Linux 文件系统树形结构,却又不愿翻阅 FHS 的朋友,可以参考 skill2die4 制作的这张简图. 此图算是 FHS 的图形化版本,简要的说明了 Linux 系统中各个目录的用途及层级关系,适合初学者使用参考. 不过其中较新的如 /run 目录并未在其中出现. 做为参考,这是 Fedora 16 Beta i686 上的文件结构:.

多文件上传

- - BlogJava-首页技术区
多文件上传 jquery的插件. 使用的方法  导入 jquery.js 及 jquery.MultiFile.js ,. 方式一: 后台是文件数组  .  private File[] upload; // 与jsp表单中的名称对应. 在 form 中加入 即可.

Zookeeper配置文件

- - 学着站在巨人的肩膀上
复制conf/zoo_sample.cfg文件为conf/zoo.cfg,修改其中的数据目录. tickTime:这个时间作为Zookeeper服务器之间或者服务器与客户端之间维护心跳的时间,时间单位毫秒. initLimit:选举leader的初始延时. 由于服务器启动加载数据需要一定的时间(尤其是配置数据非常多),因此在选举 Leader后立即同步数据前需要一定的时间来完成初始化.

读取 calss文件

- - zzm
System.out.println("解析失败. int length = 0; // 长度,字节,B. double kblength = 0.0D; // 长度,千字节,KB. System.out.println("文件大小(字节):" + length + "\n文件大小(KB):" + kblength);.