gpt4 book ai didi

python - 如何将所有 URL 以 "www"开头的请求重定向到裸域?

转载 作者:太空宇宙 更新时间:2023-11-03 13:22:32 25 4
gpt4 key购买 nike

我已成功为我的应用程序添加 Heroku 自定义域。我想知道如何捕获以 www 开头的请求并将它们重定向到裸域。例如,我将以下自定义域映射到我的 Heroku 应用程序:

www.myapp.com
myapp.com

http://myapp.comhttp://www.myapp.com 的请求都成功了,但是 www继续。

目标

我希望所有对 http://www.myapp.com 的请求都重定向到 http://myapp.com。这也适用于其他路径,例如 http://www.myapp.com/some/foo/bar/path 重定向到 http://myapp.com/some/foo/栏/路径。我想要这样的东西:http://www.stef.io并查看地址栏中的 www. 是如何消失的。

到目前为止,我在 Google 上找到的说明是关于编辑我的 .htaccess 文件的,但我在 Heroku 上运行 Flask 框架上的 Python 应用程序。

最佳答案

为此推荐的解决方案是 DNS 级重定向(参见 heroku help)。

或者,您可以注册一个before_request 函数:

from urlparse import urlparse, urlunparse

@app.before_request
def redirect_www():
"""Redirect www requests to non-www."""
urlparts = urlparse(request.url)
if urlparts.netloc == 'www.stef.io':
urlparts_list = list(urlparts)
urlparts_list[1] = 'stef.io'
return redirect(urlunparse(urlparts_list), code=301)

这将使用“HTTP 301 永久移动”响应将所有 www 请求重定向到非 www。

关于python - 如何将所有 URL 以 "www"开头的请求重定向到裸域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9350141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com