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

如何在Azure Web App中强制HTTPS跳转?已配置自定义域名SSL cert

Azure Web App 强制HTTP跳转HTTPS的解决方案

首先明确:Azure Web App属于Azure App Service的子集,「TLS/SSL设置」面板是存在的,只是入口可能和你看到的文档描述有细微差异,先尝试找对入口:

  • 登录Azure门户,进入你的Web App资源
  • 在左侧导航栏的「设置」分类下,找到「TLS/SSL设置」(如果没看到,直接用顶部搜索框搜「TLS/SSL设置」)
  • 切换到「HTTPS 仅」选项卡,将开关设为「开启」,即可自动实现HTTP到HTTPS的重定向。

如果确实无法找到该面板,还有以下非代码方案可选:

方案一:通过应用设置配置

  • 进入Web App的「配置」→「应用设置」
  • 添加一个名为 HTTPS_ONLY 的应用设置,值设为 On
  • 保存配置后,Web App会自动启用HTTP到HTTPS的强制跳转。

方案二:自定义重写规则

Windows环境(IIS)

在站点根目录创建或修改 web.config 文件,加入以下重写规则:

<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="HTTP to HTTPS Redirect" stopProcessing="true">
          <match url="(.*)" />
          <conditions>
            <add input="{HTTPS}" pattern="off" ignoreCase="true" />
          </conditions>
          <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

Linux环境(Apache)

在站点根目录的 .htaccess 文件中添加:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

代码层面的备选方案(Flask)

如果以上非代码方案都无法生效,再考虑通过Flask代码实现,示例如下:

from flask import Flask, request, redirect
from werkzeug.middleware.proxy_fix import ProxyFix

app = Flask(__name__)
# 适配Azure反向代理,让Flask识别真实请求协议
app.wsgi_app = ProxyFix(app.wsgi_app, x_proto=1)

@app.before_request
def enforce_https():
    if not request.is_secure:
        secure_url = request.url.replace('http://', 'https://', 1)
        return redirect(secure_url, code=301)

# 你的业务路由
@app.route('/')
def index():
    return "已强制跳转至HTTPS"

if __name__ == '__main__':
    app.run()

内容的提问来源于stack exchange,提问作者Robert Sim

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 06:10:20