【发布时间】:2015-02-10 12:27:47
【问题描述】:
我有一个简单的网站https://karra-asynk.appspot.com,它已经运行了很多年。最近我购买了一个域http://asynk.io/ 并将其设置为指向我的appengine 应用程序。问题是当我搜索“asynk”或任何相关关键字时,谷歌只在搜索结果中显示 apppot 网址。无论如何,我可以将所有这些指向我的自定义域?
【问题讨论】:
我有一个简单的网站https://karra-asynk.appspot.com,它已经运行了很多年。最近我购买了一个域http://asynk.io/ 并将其设置为指向我的appengine 应用程序。问题是当我搜索“asynk”或任何相关关键字时,谷歌只在搜索结果中显示 apppot 网址。无论如何,我可以将所有这些指向我的自定义域?
【问题讨论】:
您可以为请求的域添加检查,如果它是 appspot 子域,则重定向到新域下的相同路径。之后,您只需要等待。更新 Google 索引需要时间,并且取决于指向您网站的链接数量(Google 知道),因此如果您的网站列在您可以控制的位置 - 请更新指向新域的链接。
您也可以考虑根据请求的域提供不同的 robots.xml - 对于旧的子域,使用“Disallow: /”提供它以防止对其编制索引,但这并不一定意味着新域将在谷歌而不是相同的搜索,至少要等到一段时间过去。
【讨论】:
确保您使用301 redirect code 将您的.appspot.com 请求重定向到您的新域。
您也可以使用谷歌站长的“Change of address”工具。
【讨论】:
只需在MIDDLEWARE_CLASSES 的settings.py 顶部添加中间件
就我而言
MIDDLEWARE_CLASSES = {
'myapp.models.WWWRedirectMiddleware',
}
在models.py
from django.http import HttpResponsePermanentRedirect //Permanent Redirect status - 301
class WWWRedirectMiddleware(object):
def process_request(self, request):
if request.META['HTTP_HOST'].endswith('appspot.com'):
logging.info('---Redirecting to domain.com----')
return HttpResponsePermanentRedirect('http://domain.com' + request.META['PATH_INFO'])
注意:不能使用this处理静态文件。
【讨论】: