You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask 3.1.0升级后SERVER_NAME引发子域名功能异常的技术问询

Flask 3.1.0 子域名功能恢复配置方案

Flask 3.1.0 对SERVER_NAME的子域名匹配逻辑做了调整,默认关闭了子域名识别能力,这是导致你升级后子域名路由返回404的核心原因。以下是具体修复步骤:

  • 启用子域名匹配开关
    Flask 3.1.0 默认将subdomain_matching设为False,必须显式开启才能让应用识别路由中的subdomain参数。在应用配置中添加:

    app.config['SUBDOMAIN_MATCHING'] = True
    
  • 保留原有核心配置
    你之前的SERVER_NAME = "domain.com"和SESSION_COOKIE_DOMAIN = ".domain.com"配置可以继续使用,前者用于标识主域名,后者保证会话在所有子域名间共享,无需修改。

  • 验证路由定义正确性
    确保子域名路由的参数定义符合预期,比如用户专属子域名路由:

    @app.route('/', subdomain='<username>')
    def user_dashboard(username):
        return f"用户 {username} 的专属页面"
    

    无域名限制的Blueprint不需要设置subdomain参数,这样它会自动匹配所有域名(主域名+子域名):

    from flask import Blueprint
    public_bp = Blueprint('public', __name__)
    
    @public_bp.route('/help')
    def help_center():
        return "所有域名均可访问的帮助页面"
    
  • 本地调试补充配置
    如果在本地测试,需要修改系统hosts文件(Windows路径:C:\Windows\System32\drivers\etc\hosts;Linux/macOS路径:/etc/hosts),添加子域名映射:

    127.0.0.1 domain.com
    127.0.0.1 test.domain.com
    

    确保本地能正确解析子域名请求。

内容的提问来源于stack exchange,提问作者Marco Evasi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 23:42:34