`
mmdev
  • 浏览: 12915383 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

django+apache配置网站的robots.txt和sitemaps等理静态文件

 
阅读更多

当你的网站已经在公网上正常上线后,为了能被搜索引擎很好的收录网站结构,就必须主动向搜索引擎提供robots.txt和sitemap.xml,

先来看看什么是robots.txt和 sitemap.xml吧,以下摘自“维基百科”

http://zh.wikipedia.org/zh-cn/Sitemaphttp://zh.wikipedia.org/zh/Robots.txt

robots.txt

维基百科,自由的百科全书

robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不能被搜索引擎的漫游器获取的,哪些是可以被(漫游器)获取的。 因为一些系统中的URL是大小写敏感的,所以robots.txt的文件名应统一为小写。robots.txt应放置于网站的根目录下。如果想单独定义搜索引擎的漫游器访问子目录时的行为,那么可以将自定的设置合并到根目录下的robots.txt,或者使用robots元数据

Robots.txt协议并不是一个规范,而只是约定俗成的,所以并不能保证网站的隐私。注意Robots.txt是用字符串比较来确定是否获取URL,所以目录末尾有和没有斜杠“/”这两种表示是不同的URL,也不能用"Disallow: *.gif"这样的通配符。

其他的影响搜索引擎的行为的方法包括使用robots元数据

<meta name="robots" content="noindex,nofollow" />

这个协议也不是一个规范,而只是约定俗成的,通常搜索引擎会识别这个元数据,不索引这个页面,以及这个页面的链出页面。

XML网站地图 sitemaps

sitemaps是站点管理员向搜索引擎爬虫公布站点可被抓取页面的协议,sitemap文件内容必须遵循XML格式的定义。每个URL可以包含更新的周期和时间、URL在整个站点中的优先级。这样可以让搜索引擎更佳有效的抓取网站内容。

Google引入了Google网站地图使得网页开发者可以发布整个站点的链接列表。其基本假设是一些站点拥有大量动态页,而这些页面只能通过表单和用户登录来访问。网站地图文件可以被用来指引网络蜘蛛如何找到这类页面。GoogleMSNYahoo以及Ask都支持网站地图协议。

由于MSN、Yahoo、Ask以及Google使用同样的协议,因此拥有一个站点地图可使这四个最大的搜索引擎的页面信息保持最新。网站地图不保证所有的链接可被抓取,而被抓取了也不一定会做成索引。但是,一个站点地图仍然是使一个搜索引擎获得你整个站点信息的最保险的方式。

那么我们现在以django+apache为架构的网站 (www.souapp.com)搜应用 为例,将robots.txt和sitemap.xml提交给google作为工作任务。

1、首先你要登录google网站管理员工具页面:

https://www.google.com/webmasters/tools/home?hl=zh-CN

添加 www.souapp.com,并验证你是网站的拥有者。

2、在“网站配置”栏目下的“抓去工具的权限”为robots.txt配置详细。

如图所示,robots.txt文件位置默认访问 http://www.souapp.com/robots.txt,当然你也可以手工制定URL。

3、在“网站配置”栏目下的“Sitemaps”为sitemap.xml配置详细。

如图所示,sitemap.xml文件位置默认访问 /sitemap.xml,当然你也可以手工定制URL,我自定义设置为/media_alias/sitemap.xml

============================================================

下面我们着重讲解,robots.txt和sitemap.xml放置在网站根目录的路径配置操作:

1、Django网站的静态文件js,image,css路径配置

我把网站使用到的css js jpg png txt等文件全部放在网站下的media目录下
要在页面中能够引用到要做如下的配置

在setttings.py中加入
#设置静态文件路径
STATIC_PATH ='/var/www/media/'

在urls.py中的配置
先导入 from django.conf import settings
接着在urlpatterns 中加上
(r'^media_alias/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.STATIC_PATH}),

最后在html页面中就可以这样用了
<link rel="stylesheet" type="text/css" href="/media_alias/common.css" />
<script type="text/javascript" src="/media_alias/jquery.js" />
<image src="/media_alias/souapp.png" />

2、Apache静态文件路径配置

注意:你的apache要安装mod_python ,详细参考:Ubuntu 8.04 mod_python Config

LoadModule python_module /usr/lib/apache2/modules/mod_python.so

找到/etc/apache2/httpd.conf文件,配置如下:

<VirtualHost *:80>
<Location "/">
SetHandler python-program
PythonPath "['/var/www']+sys.path"
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE souapp.settings
#PythonOption django.root /
PythonDebug On
#PythonInterpreter souapp
</Location>

Alias /media_alias/ /var/www/media/

Alias /robots.txt /media_alias/robots.txt
Alias /sitemap.xml /media_alias/sitemap.xml

<LocationMatch "/.(jpg|gif|png|txt|ico|pdf|css|jpeg)$">
SetHandler None
</LocationMatch>

这样一来,访问http://www.souapp.com/sitemap.xml,和http://www.souappp.com/robots.txt,实际上是apache直接访问的/var/www/media/的sitemap.xml和robots.txt

3、robots.txt和 sitemap.xml的生成

在google网站管理员工具页面的引导下,你会很快生成 robots.txt并下载下来,放到你的网站目录里,而sitemap.xml的生成请参考

Django生成网站的sitemap.xml

搜应用网(www.souapp.com)致力于移动互联网-手机应用服务的提供,为广大手机用户努力营造一个分享手机应用、充分享受移动生活给我们带来无限生活乐趣的环境,为此我们深信移动互联网是手机用户个性化、分享化的个人时代;目前我们提供的服务主要针对于Android手机系统。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics