记录我的学习与生活
Google App Engine 301 永久重定向
由于我想把my2first.appspot.com的流量都转移到www.ddig.info上,也有搜索引擎方面的原因,所以我想把my2first.appspot.com上的内容重定向到www.ddig.info上。
1. class MainPage的get方法第一行添加
if self.request.headers["Host"] == ‘my2first.appspot.com’:
self.redirect(”http://www.ddig.info/”)
self.response.set_status(301)
2. class SinglePost的get方法
if not entries or len(entries) == 0:
return self.error(404)
的下面添加
if self.request.headers["Host"] == ‘my2first.appspot.com’:
self.redirect(”http://www.ddig.info/”+slug)
self.response.set_status(301)
3. class SitemapHandler的get方法下第一行添加
if self.request.headers["Host"] == ‘my2first.appspot.com’:
self.redirect(”http://www.ddig.info/sitemap”)
self.response.set_status(301)
上边其实也可以不加self.response.set_status(301),self.redirect方法加上第二个参数True也可以,这样是Google推荐的方法。
if self.request.headers["Host"] == ‘my2first.appspot.com’:
self.redirect(”http://www.ddig.info/sitemap”, True)
4. 注意清楚缓存和代码缩进,tinymce的空格问题真麻烦 已经解决,我换了最新版的Tinymce已经不存在这个问题。
这样基本就差不多了
以上实例只限Micolog程序。
我可不赞成这样pr作弊!
2009年07月7日 - 10:40 上午
我之前也做过这样的301,但后来由于ghs的ip老被封就取消了。
def do301(handler):
return False
url = handler.request.url
ix = url.find(’/',len(’http://’) )
host, slug = None,None
if ix > 0:
host = url[ len('http://'): ix ]
slug = url[ ix : ]
else :
host = url[ len('http://'): ]
slug = ”
if host == ‘keeng2008.appspot.com’ :
handler.response.set_status(301,’Moved Permanently’)
handler.response.headers.add_header("Location", ‘http://www.kgblog.net’ + slug)
return True
return False
在每个handler的get方法下面添加:
if do301(self) :
return
就完成了,如果使用缓冲的话可以会有些麻烦。
[回复]
2009年07月7日 - 11:19 上午
@Keengle 是啊,没发现这个问题
先把缓存取消了吧
等过一段我也取消了
[回复]
2009年07月7日 - 1:00 下午
不知道这个能否实现类似的功能 只是转首页
有时候,因为内容的更改或者隐私问题,我们往往不希望别人通过“百度快照”的方法查看自己网站的某一些网页,对于网站管理员来说,百度快照也分流了大量本属于网站的流量,为了增加网站的流量或者增强内容隐私,我以前曾经提供过一段将百度快照重定向到自己网站的方法。不过后来百度改变的快照算法,不从远端服务器获取JavaScript文件,因此先前介绍的那个屏蔽方法目前已经失效。
现在我介绍一个新方法,原理也是大致相同,我们知道目前百度网页快照虽然不从远端服务器抓取JavaScript文件,还是依旧会从远端服务器抓起 CSS文件,而通过一个技巧可以在CSS文件中实现网页重定向,从而控制百度快照中的网页,完全由我们控制该快照重定向到我们制定的任何网页地址。
例如,如果百度快照中缓存的文件为style.css,那么我们在服务器上编辑这个文件,在CSS文件中加入以下语句,即可控制百度缓存快照重定向,从而实现屏蔽百度网页快照内容的功能。
body {onload:expression(location.href=’http://www.williamlong.info/’);}
以上语句在IE浏览器下测试通过。理论上,根据这个方法,我们可以控制百度网页快照的内容重定向到任何一个我们指定的网址,甚至是第三方网站。为了实现网页的正常显示,百度快照屏蔽CSS的可能性会非常小。
这个方法也可用于屏蔽Google等其他搜索引擎的网页快照。
[回复]
2009年07月7日 - 1:04 下午
很早的时候 我还想用 http://hi.baidu.com/hikeba/blog/item/ec6d9418ed69ccb14aedbce9.html
现在觉得没意思 该消失还是让他消失吧
以前 我管了台服务器 当然我的域名没时间做网站,就挂了上去 ,没想到谷歌收录了那么多!!
[回复]
2009年07月7日 - 1:15 下午
刚才 在自定义搜索 里 排除了几个网址 好多了
http://www.houkai.com/center
http://www.houkai.com/lab
http://www.houkai.com/co
http://www.houkai.com/hk
[回复]
2009年07月7日 - 2:30 下午
好复杂
[回复]
2009年07月8日 - 1:00 上午
正需要呢……好!
[回复]
2009年07月8日 - 1:05 上午
@TaoGOGO 记得先把缓存取消了,过几天再把301取消了,缓存再开启
[回复]
2009年07月11日 - 3:08 上午
学习了,很有用
[回复]
2009年07月7日 - 12:19 下午
呵呵 好东西 赞一个!
把缓存去掉 首页的cpu使用会很高呀!!
[回复]
2009年07月7日 - 12:41 下午
刚搜了一下你的博客 确实 appspot 在搜索中占了不少
我开始用gae建博客,就把域名绑上去了 所以appspot基本没什么浏览
[回复]
2009年07月7日 - 1:08 下午
后来没用上面的方法 iis绑定多个域名很容易 设置一下就可以了
[回复]
2009年07月8日 - 12:45 上午
@托尔·银月 哎,没办法,谁让我是搞技术的
@houkai 等几天我再把301取消了
[回复]
2009年07月8日 - 12:27 下午
技术文,学习了!
[回复]
2009年07月8日 - 2:26 下午
@麦田 搞技术的吗,多少会点
[回复]
2009年07月9日 - 5:37 上午
我参观的,仅限Mblog
[回复]
2009年10月16日 - 5:13 上午
还是失败了。。。估计那个
能直接把文件发过来给我吗?我直接修改一下地址就行了。
[回复]
2009年10月16日 - 7:54 上午
@托尔·银月 是Micolog。。。。
@spcms 嗯,有时候确实很有用的
@cho 你在blog.py里面按照上面写的应该没问题的,原来的我没有备份找不到了
[回复]
2009年10月21日 - 12:40 上午
@cho 我用scite,其实python自带的编辑器也不错的
[回复]
2009年10月20日 - 3:44 下午
还是不成功……
估计是缩进没弄好。大家用什么编辑这个东西的呢?
[回复]
2009年11月4日 - 3:35 下午
@这样不行啊,self.request.headers["Host"] 表示主机名,如:www.houkai.com。
2. class SinglePost的get方法
if not entries or len(entries) == 0:
return self.error(404)
的下面添加
if self.request.headers["Host"] == ‘my2first.appspot.com’:
if 判断下url是否为soft,我也不清楚,明天查下
self.redirect("http://www.houkai.com/share")
self.response.set_status(301)
[回复]
2009年11月5日 - 1:40 上午
你把域名 指向ip 162.105.147.9
我最近也在找更好的 所以可能经常换。我这几天再测试kangzj的反向!
[回复]
2009年11月4日 - 2:37 下午
问个问题, 我的 http://www.houkai.com/soft被封了 如果用国内代理打开没问题 今晚我用了kangzj的国外代理 soft又打不开了。我现在要将/soft 301到 /share 只要用 上面说的第一点就行吗?主要是要告诉搜索引擎!
if self.request.headers["Host"] == ‘www.houkai.com/soft’:
self.redirect("http://www.houkai.com/share")
self.response.set_status(301)
这样行吗?我这里用下面代码测试 报错了
# if self.request.headers["Host"] == ‘localhost:8080/soft’:
# self.redirect("localhost:8080/share")
# self.response.set_status(301)
[回复]
2009年11月5日 - 1:35 上午
@houkai 你判断slug就可以了嘛呵呵
if self.request.headers["Host"] == ‘my2first.appspot.com’ and slug == "soft":
—-self.redirect("http://www.houkai.com/share")
—-self.response.set_status(301)
[回复]