Google Cloud App Engine 将所有 /*.html 结尾重定向到 /?
Google Cloud App Engine redirect all /*.html endings to /?
我在 Internet 上有很多包含 .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”结尾的东西。
我在 Internet 上有很多包含 .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”结尾的东西。