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中设置规范元标记?你可以看看我是怎么做的