关于.htaccess配置血泪史。。

第一次做一个正式的网站,好多东西不懂,什么robot、sitemap、伪静态。。。

其实总的来说都是SEO的问题,SEO提高搜索引擎排名,网站PR等等,更对网站的友链外链都有影响。可要运营一个网站就必需得在乎这些

前两者就不多说了,就是给搜索引擎的爬虫做向导

关于伪静态的问题,可以理解为把动态页面(php、jsp啥的)变成静态页面。输入静态链接看动态内容,因为搜索引擎对静态内容特别看重。

那么如何配置,对于LAMP的框架,就是靠.htaccess

这个东西功能非常强大,当然这样导致他非常的麻烦,高级用法更有难度。

在配置之前还需要用到正则表达式,相当不轻松,搞了好多天。。。

分享一些用法:

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

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

  1. Redirect301http://www.aqee.net/homehttp://www.aqee.net/

3. 屏蔽下载对话框

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

  1. AddTypeapplication/octet-stream.pdf
  2. AddTypeapplication/octet-stream.zip
  3. AddTypeapplication/octet-stream.mov

4. 省去www前缀

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

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

5. 个性化Error页面

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

  1. ErrorDocument401/error/401.php
  2. ErrorDocument403/error/403.php
  3. ErrorDocument404/error/404.php
  4. ErrorDocument500/error/500.php

6. 压缩文件

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

  1. #压缩text,html,javascript,css,xml:
  2. AddOutputFilterByTypeDEFLATEtext/plain
  3. AddOutputFilterByTypeDEFLATEtext/html
  4. AddOutputFilterByTypeDEFLATEtext/xml
  5. AddOutputFilterByTypeDEFLATEtext/css
  6. AddOutputFilterByTypeDEFLATEapplication/xml
  7. AddOutputFilterByTypeDEFLATEapplication/xhtml+xml
  8. AddOutputFilterByTypeDEFLATEapplication/rss+xml
  9. AddOutputFilterByTypeDEFLATEapplication/javascript
  10. AddOutputFilterByTypeDEFLATEapplication/x-javascript

7. 缓存文件

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

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

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

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

  1. #显式的规定对脚本和其它动态文件禁止使用缓存
  2. <FilesMatch“.(pl|php|cgi|spl|scgi|fcgi)$”>
  3. HeaderunsetCache-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. RewriteEngineOn
  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. orderallow,deny
  4. denyfromall
  5. </Files>
  6. #阻止查看指定的文件
  7. <Filessecretfile.jpg>
  8. orderallow,deny
  9. denyfromall
  10. </Files>
  11. #多种文件类型
  12. <FilesMatch“.(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$”>
  13. OrderAllow,Deny
  14. Denyfromall
  15. </FilesMatch>

4. 重命名 htaccess 文件

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

  1. AccessFileNamehtacc.ess

5. 禁止目录浏览

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

  1. #禁止目录浏览
  2. OptionsAll-Indexes
  3. #开放目录浏览
  4. OptionsAll+Indexes

6. 改变缺省的Index页面

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

  1. DirectoryIndexbusiness.html

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

  1. #阻止来自某网站的用户
  2. <IfModulemod_rewrite.c>
  3. RewriteEngineon
  4. RewriteCond%{HTTP_REFERER}scumbag.com[NC,OR]
  5. RewriteCond%{HTTP_REFERER}wormhole.com[NC,OR]
  6. RewriteRule.*-[F]
  7. </ifModule>

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

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

  1. #阻止来自某些特定网站的用户
  2. <IfModulemod_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. Denyfromenv=HTTP_SAFE_BADBOT
  6. </ifModule>

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

  1. #禁止某些目录里的脚本执行权限
  2. AddHandlercgi-script.php.pl.py.jsp.asp.htm.shtml.sh.cgi
  3. Options-ExecCGI

在这里给大家分享下一些有帮助的文章吧:

http://blog.minidx.com/2008/01/26/444.html

其实只要你正则学得好.htaccess就简单多了

你可能感兴趣的:(Access)