环境
申请结构:
.git
.openshift
data
libs
wsgi
- static
- views
- application
- my_bottle_app.py
README.md
setup.py
setup.pyc
setup.pyo
所需行为
我想为该位置的文件创建robots.txt
规则:
wsgi/static/file_1.txt
wsgi/static/file_2.txt
例如:
User-agent: *
Disallow: /file_1.txt
Disallow: /file_2.txt
问题
robots.txt
文件是否应放在
wsgi
wsgi/static
修改
为了澄清,该应用程序是一个Bottle应用程序,因此有许多路径可以提供不同的内容。
此外,所有页面都通过https
提供自定义功能:
def redirect_http_to_https(callback):
'''Bottle plugin that redirects all http requests to https'''
def wrapper(*args, **kwargs):
scheme = request.urlparts[0]
if scheme == 'http':
# request is http; redirect to https
redirect(request.url.replace('http', 'https', 1))
else:
# request is already https; okay to proceed
return callback(*args, **kwargs)
return wrapper
install(redirect_http_to_https)
所以我试图了解应该放置robots.txt
的位置,以便正确使用它。
答案 0 :(得分:2)
将robots.txt文件放在后端的位置无关紧要 只有从Web上可以访问robots.txt的地方才有用。
对于每个主机,该文件必须在/robots.txt
处可用。所以它必须始终在主机的根目录中,而不是在子文件夹中。
示例:
当机器人想要抓取http://example.com/wsgi/static/file_1.txt
时,它应该在http://example.com/robots.txt
上寻找robots.txt。
如果是https://example.com/wsgi/static/file_1.txt
(https而不是http),则位置必须为https://example.com/robots.txt
。
如果是http://www.example.com/wsgi/static/file_1.txt
(包含子域),则位置必须为http://www.example.com/robots.txt
答案 1 :(得分:2)
<强>解决方案强>
这是具体的解决方案,似乎已经得到了用户的回答。
在Python app中添加Bottle路径:
@route('/robots.txt')
def serve_robots():
return static_file('robots.txt', root='app-root/repo/wsgi/static/')
然后将robots.txt
添加到wsgi/static/
。
然后可以访问robots.txt
文件。
https://app-username.rhcloud.com/robots.tx