经常有人会误会robots.txt与.htaccess档桉的用法
本文标签::robots(2)htaccess(1)
经常有人会误会robots.txt与.htaccess档桉的用法,所以我们特别整理资料来说明 ...
robots.txt与.htaccess档桉最简单并且应该知道的事项如下:
(1)robots.txt放置在www根目录下,.htaccess档桉最好是放置在非www根目录下(依照Apache安装设定)。
例如某个空间 /home/yourhosting/ 是你的根目录
可以设定 /home/yourhosting/www/ 当成是你的www根目录
(2)robots.txt的目的是告诉搜寻引擎的爬虫程式,哪些可以抓取,哪些不要抓取。
(3)robots.txt的作用只是告知性质,如果搜寻引擎的爬虫程式不理会,也没有办法。
(4).htaccess档桉是搭配Apache web伺服器软体运作,其他类型的伺服器软体未必也使用相同方式。例如如果是Windows IIS 7的话,则是使用web.config来保存应用程式整合设定 (参考)。
(5).htaccess档桉的目的是处理进到网站的所有连线的权限与方式。
(6).htaccess档桉的作用不是告知性质,连线进来就会依照.htaccess档桉内的语法处理。
(7)robots.txt与.htaccess档桉各有其不同的语法。
例如你可以看看Yahoo的robots.txt样子~ http://www.yahoo.com/robots.txt
所以有没有注意到? 任何人都可以看到网站的robots.txt档桉,所以你如果有内部使用的目录,而没有密码保护的话,千万不要把他列在robots.txt内,因为等于告诉大家这裡有机密档桉。就算有密码保护,其实也是一种安全疑虑,最好不要把内部文件放置在对外公开的伺服器上。
那么robots.txt应该如何设定呢? 你也可以参考 wikipedia关于robots.txt的解释
(1)如果你没有特别需要限制,大都robots.txt内容如下
User-agent: *
Disallow:
如果你不允许任何爬虫程式连线,内容如下
User-agent: *
Disallow: /
如果你不允许任何爬虫程式抓取特定目录,内容如下
User-agent: *
Disallow: /cgi-bin/
Disallow: /images/
Disallow: /tmp/
Disallow: /private/
当然前面有说到,只是告知性质,爬虫程式如果不遵守,你也没皮条就是了。
(2)上面说到的User-agent,就是指定哪些特定的爬虫程式,星号(*)就是表示所有的爬虫程式。
例如: Google的User-agent是 googlebot,Bing的User-agent是 bingbot
(微软的msnbot已经于2010/10/1后不再使用)
而百度的User-agent则是baiduspider,但是百度还是其他的user-agent,请参考 http://www.baidu.com/search/spider.htm
(3)那么robots.txt还有其他的写法吗? 你可以利用具来产生robots.txt。
http://www.searchenginepromotionhelp.com/m/robots-text-creator/simple-robots-creator.php
利用这个工具产生之后,再上传到网站www的根目录,再使用Google Webmasters去测试是否正确即可。
robots.txt的观念非常简单的,不是吗? 线上还有许多robots.txt generator,你可以自己找看看。
但是关于.htaccess,就不是这么简单几句话就能够解释清楚的了。
我们先简单介绍最基本的概念,后续再详细专文介绍。
(1).htaccess档桉是Apache启动后必须读取的档桉,其位置看Apache设定。
(2)有时候有些设定也可以放在httpd.conf档桉下,但是httpd.conf只有在Apache启动时读取,而.htaccess是在每次连线都会去读取。
(3).htaccess档桉内的某些宣告,必须配合先载入某些特定模组。例如你要进行URL的301转址,就必须安装mod_rewrite模组,才能在.htaccess内进行相关转址宣告。
以下是.htaccess的几个例子~
当你要阻挡某个ip连线进来,就可以宣告如下
deny from 46.28.160.1/32
以上的46.28.160.1/32,就是指ip 46.28.160.1不能连线进来,32是指其subnet mask (子网遮罩)是 255.255.255.255 (这个不懂没关係)。
当你要进行转址,就可以宣告如下
RewriteEngine on
RewriteCond %{HTTP_HOST} ^30203.com [nocase]
RewriteRule ^(.*) http://www.30203.com/$1 [last,redirect=301]
RewriteEngine on只需宣告一次,后面的各个转址就不需要再写一次。
哇,开始複杂了,上面的转址就是说: 任何没有www的URL,都要转成有www开头的URL,例如 http://30203.com 会转成 http://www.30203.com
(4)怎么办? 这么複製的语法根本搞不懂,没关係,你可以使用htaccess editor,这个线上编辑可以简便的操作一些常用的语法出来。
必须注意的是,许多.htaccess的语法的变化很多,很可能达成一个相同的任务,可以有许多不同的写法。
如果对上述内容发现有不妥之处,欢迎大家提出讨论囉。
拓宽动力是深圳一家互联网基础服务商,提供深圳网站建设-深圳网站制作- 深圳SEO-深圳网站优化- 深圳网络推广-深圳网站推广,集网站建设、网站优化、网站推广、网站运营于一体!力助企业实现网络梦想,帮助企业打造网络赚钱机器。咨询热线:0755-88842685.

粤ICP备18027777号