我在互联网上有很多反向链接包含一个。html结尾。例如,https://mywebsite.de/blog.html但同时我所有的网站都是https://mywebsite.de/blog。我使用Flask后端,没有找到将这些.html结尾重定向到/的解决方案。是否有可能使用app.yaml配置文件?比如:
handlers:
- url: /*.html
{define here the redirect}
我发现文档中没有任何关于它的有用信息。https://cloud.google.com/appengine/docs/standard/python/config/appref?hl=de handlers_element
你需要在Flask中这样做。我看到两个主要选项。
(1)你可以使用正则表达式创建匹配的Flask路由。然后匹配所有以.html
结尾的路由并进行重定向。
(2)在函数上使用@app.before_request
,检查request.url
是否以.html
结束,然后重定向。
请注意,Flask中的redirect
默认是302,你可能想指定一个301重定向。
按照gaefan的建议,我用Flask自己解决了这个问题。我的解决方案如下:
@app.route('/blog/<slug>.html')
def html_redirect(slug):
return redirect(f"https://mywebsite.de/blog/{slug}" ,code=301)
注意:此重定向只针对/blog的子站点。不仅仅是任何包含"。html"结局。