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

Azure Web App Service的IIS能否仅返回带路径的HTTP重定向?

解决方案

要让IIS返回仅包含路径的Location头,不能使用URL重写模块的Redirect动作(该动作会自动补全协议和主机名),需要改用Rewrite动作配合自定义响应头来实现。

最终配置

替换原有的重定向规则为以下配置:

<rule name="Remove trailing slash" stopProcessing="true">
    <match url="^(.*)/$" />
    <conditions>
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
    </conditions>
    <action type="Rewrite" url="{R:1}" />
    <serverVariables>
        <set name="RESPONSE_Location" value="{R:1}" />
    </serverVariables>
</rule>

关键说明

  • 替换Redirect为Rewrite:Rewrite动作是在服务器内部改写请求路径,不会触发自动补全绝对URL的逻辑。
  • 自定义RESPONSE_Location头:通过设置服务器变量RESPONSE_Location,直接指定响应头的值为捕获到的路径{R:1},这样就能输出仅包含路径的Location。
  • 保留原有条件:确保只对非文件、非目录的URL生效,避免破坏静态资源或目录的正常访问。

配置生效后,访问/login/会返回:

HTTP/1.1 301 Moved Permanently
Location: /login

为什么之前的尝试无效

IIS URL重写模块的Redirect动作设计上会自动将相对路径转换为绝对URL(基于当前请求的协议和主机名),哪怕你硬编码url="/test",模块也会自动补全成完整的https://www.example.com/test,这是模块内置的行为,无法通过调整url参数或捕获组来改变。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 09:07:05