Google app engine 在app.yaml中,仅在HTTP上阻止对robots.txt的访问
我需要在Google app engine 在app.yaml中,仅在HTTP上阻止对robots.txt的访问,google-app-engine,yaml,Google App Engine,Yaml,我需要在robots.txt上提出404未找到,当从HTTP访问时,在HTTPS上的robots.txt应该正常返回 我无法找到仅在app.yaml配置中限制https访问的方法,因此我决定为此编写一个处理程序,但出现以下错误: google.appengine.api.yaml_errors.EventError: Unexpected attribute "script" for mapping type static_files. 在app.yaml中,我有: - url: /r
robots.txt
上提出404未找到
,当从HTTP
访问时,在HTTPS
上的robots.txt应该正常返回
我无法找到仅在app.yaml
配置中限制https访问的方法,因此我决定为此编写一个处理程序,但出现以下错误:
google.appengine.api.yaml_errors.EventError: Unexpected attribute "script" for mapping type static_files.
在app.yaml
中,我有:
- url: /robots.txt
script: main.application
static_files: static/\1
upload: static/robots.txt
处理这种情况的最佳方法是什么?简单处理程序可以: app.yaml
- url: /robots_file
static_files: static/robots.txt
upload: static/robots.txt
views.py:
from google.appengine.api.urlfetch import fetch
class RobotsTxtHandler(webapp2.RequestHandler):
def get(self):
if self.request.url.startswith('https'):
robots = fetch('{}/robots_file'.format(SITE_URL))
return self.response.write(robots.content)
raise errors.Http404
URL.py:
urls = [
('/robots.txt', views.RobotsTxtHandler),
]
为您的处理程序在app.yaml中设置
安全:始终
文件:
secure:always
-对与此处理程序匹配且不使用HTTPS的URL的请求将自动重定向到具有相同路径的HTTPS URL。为重定向保留查询参数
就你而言:
- url: /robots.txt
static_files: static/robots.txt
upload: static/robots.txt
secure: always
在我的情况下,这不会有帮助,因为爬虫程序正在忽略重定向,他们会将https/robots.txt视为http/robots.txt。如果您需要使您的站点仅使用https,您应该指定secure:always for all handlers并在HTML中设置规范元标记?你可以看看我是怎么做的