今天在《外刊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

.htaccess重写、安全防护、文件访问权限相关推荐

  1. linux查看目录访问权限,Linux文件访问权限

    一.设置用户ID和设置组ID 1.实际用户ID和实际组ID标识当前登录的用户. 2.有效用户ID,有效组ID以及附加组ID决定了我们的文件访问权限. 3.通常,有效用户ID等于实际用户ID,有效组ID ...

  2. Linux 权限管理: 权限的概念、权限管理、文件访问权限的设置、 粘滞位

    Linux下的基本指令 目录: 权限的概念 权限管理 文件访问权限的设置方法 目录的权限 粘滞位 权限的概念 Linux下用户有两种: 超级用户(root).普通用户. 超级用户:具有最高权限,可以在 ...

  3. Linux中ls -l(ll)返回结果中的文件访问权限-rw-r--rw-

    linux文件访问权限(像rw-r--rw-是什么意思) Linux的文件访问权限分为 读.写.执行三种 r:可读(4) w:可写(2)对目录来说则可新建文件 x:可执行(1)对目录来说则可进入该目录 ...

  4. iOS重写和成员变量访问权限

    iOS重写和成员变量访问权限 一.重写机制 1.覆盖父类的方法 2.对父类方法做进一步的补充 注意:父类声明过得方法,子类无需声明. * 子类如果重写了父类的方法: 1.父类的指针指向子类的对象,则调 ...

  5. 2003 文件服务器权限设置,win2003服务器设置文件访问权限

    win2003服务器设置文件访问权限 内容精选 换一换 如果您需要对华为云上购买的云手机(Cloud Phone,CPH)资源,给企业中的员工设置不同的访问权限,以达到不同员工之间的权限隔离,您可以使 ...

  6. 系统管理:文件访问权限之ACL

    ACL(acess control list) 传统UNIX文件系统:文件访问权限包含三个部分,user / group / others,这类文件系统简洁而功能相对完善,在很长时间内被证实可以被应用 ...

  7. 设置NTFS文件访问权限

    给你一个我自己收集整理的类: 例: C# code? 1 2 3 4 5 6 7 8 9 10 11 12 13 using System.Security.AccessControl;       ...

  8. linux文件访问权限,Linux文件权限和访问模式

    为了更加安全的存储文件,Linux为不同的文件赋予了不同的权限,每个文件都拥有下面三种权限: 所有者权限:文件所有者能够进行的操作 组权限:文件所属用户组能够进行的操作 外部权限(其他权限):其他用户 ...

  9. Android文件目录及文件访问权限等详解

    Android文件目录一次说清 说明 应用访问权限及范围 在app内创建文件演示 在其他app内访问上面的app创建的文件 说明 android 中获取目录的API有两种,一种是通过Environme ...

  10. 【netcore基础】wwwroot下静态资源文件访问权限控制

    本文参考如下博问 https://q.cnblogs.com/q/107836 业务要求 上传的资源文件(.mp3 .mp4等)只有购买了之后才能有权限访问,所以对上传的资源文件目录进行访问权限控制 ...

最新文章

  1. window.onload和$(document).ready()区别很大……
  2. java synchronized关键字_Java:手把手教你全面学习神秘的Synchronized关键字
  3. C#中代理的简单应用
  4. ITK:使用写访问权迭代图像中的区域
  5. 个人贷款5级分类,来看看你是哪一级
  6. FE助手 json格式化 reslet client
  7. Imbalanced class problem(ROC, Confusion Matrix)
  8. 为何System Idle Process 进程占用了大量有CPU资源
  9. css 多行文本的溢出显示省略号(移动端)
  10. eclipse安装yuicompressor插件
  11. android zlib 和zip,gzip zip 和zlib
  12. GitHub常用优秀开源Android项目
  13. 机器学习常见算法分类
  14. java 输出图片流_java IO流读取图片供前台显示代码分享
  15. c语言经纬度转高斯坐标系,经纬度坐标与高斯坐标的转换代码
  16. android取消输入法联想,输入法联想功能,怎么清除输入法联想
  17. 推荐一个简单好用的HTML编辑器
  18. TSL1.0升级到TSL1.2遇到的问题
  19. java.io.UTFDataFormatException: encoded string too long: 270976 bytes
  20. 如何看待个人的信息价值

热门文章

  1. 笔记本双系统linux显示屏显示错误(笔记本屏幕显示错误 | 外接显示屏显示错误)
  2. Python学习日记-第十四天-面向对象练习
  3. java红宝石是哪本_以月/年红宝石显示帖子
  4. 简单实现Linux下线程池
  5. linux文件同步方法,inotify + rsync实现linux文件实时同步
  6. Android Design - 设计风格
  7. 如何在PowerPoint中添加背景音乐
  8. 夜神模拟器与Android studio连接
  9. 数字时代:DevOps工程师的必备技能清单
  10. vue使用高德地图小demo(标记点,画线,3D,叠加图片图层)