在 IIS URL Rewrite 2.0 中,为什么 HTTP_HOST 包含端口号?

2024-03-15

我正在尝试使用IIS URL 重写 2.0 http://www.iis.net/downloads/microsoft/url-rewrite在 Windows 8.1 上使用 IIS 8.5。根据从重写规则访问 URL 部分 http://www.iis.net/learn/extensions/url-rewrite-module/url-rewrite-module-configuration-reference#Accessing_URL_Parts_from_a_Rewrite_Rule,

For an HTTP URL in this form: http(s)://<host>:<port>/<path>?<querystring>

• The <path> is matched against the pattern of the rule.
• The <querystring> is available in the server variable called QUERY_STRING and can be accessed by using a condition within a rule.
• The <host> is available in the server variable HTTP_HOST and can be accessed by using a condition within a rule.
• The <port> is available in the server variable SERVER_PORT and can be accessed by using a condition within a rule.
• Server variables SERVER_PORT_SECURE and HTTPS can be used to determine if a secure connection was used. These server variables can be accessed by using a condition within a rule.
• The server variable REQUEST_URI can be used to access the entire requested URL path, including the query string.

为了测试这一点,这是我使用的规则:

<rule name="Test" stopProcessing="true">
  <action type="Redirect" url="http://localhost/?{HTTP_HOST}" redirectType="Temporary" />
</rule>

然后我使用 Fiddler 中的 Composer 选项卡创建以下请求:

http://localhost.localdomain:65352/

IIS 对此做出了回应

HTTP/1.1 307 Moved Temporarily
Location: http://localhost/?localhost.localdomain:65352

由此我们可以看到,端口号包含在 HTTP_HOST 变量中,这与上面引用的文档相反。这给我的匹配规则增加了一些复杂性,因为我必须考虑端口号的可选存在。如何只获取主机名而不获取端口号?


不幸的是,我无法告诉你为什么会发生这种情况;但我可以告诉你,使用{SERVER_NAME}代替{HTTP_HOST}为我解决了这个问题。

See: https://serverfault.com/a/418530/3495 https://serverfault.com/a/418530/3495

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 IIS URL Rewrite 2.0 中,为什么 HTTP_HOST 包含端口号? 的相关文章

  • url 重写规则不会忽略文件请求

    http www iis net learn extensions url rewrite module url rewrite module configuration reference http www iis net learn e
  • nginx 子域和域重写 w 代理通行证

    我需要这两种类型的重写 subdomain domain com gt domain com website subdomain otherdomain com gt domain com userdomain otherdomain co
  • 将 url 重写为 url:端口号

    如何重写下一个 url 请求 http mydomain com virtualDirectory default aspx param1 2 param2 car to http mydomain com 8888 virtualDire
  • Azure CDN 规则引擎添加默认文档(站点请求的文件除外)

    我正在使用 Azure Verizon CDN 从 Blob 存储发布我的 Web 应用程序 SPA 我已成功设置自定义域和 SSL 我在 CDN 中添加了重写规则以重定向到默认文档 index html 基本上 这会获取传入请求并在 UR
  • 使用重定向/重写规则获取漂亮的浏览器 URL 时出现问题

    目前我使用 htaccess 重定向来发送 不错的 网址 办公室 伦敦 随便到我的脚本 讨厌的网址 db db pl 伦敦办事处 无论什么 我希望浏览器 url 很好 但使用 301 重定向则不然 所以我尝试使用 RewriteRule 但
  • VB.NET 和 COM Interop 看似随机崩溃

    我正在考虑用 VB 6 重写一个全新的 VB NET 应用程序 该应用程序在终端服务下运行并大量使用 COM 由于某种原因 该应用程序存在随机奇怪之处 随机访问冲突错误 WinDbg 异常分析指向 dll 如 comdlg32 dll ms
  • .htaccess 将子域重写到目录

    是否可以使用 htaccess将子域重写为目录 Example http sub domain example 显示内容 http domain example subdomains sub 尝试将其放入您的 htaccess file R
  • PHP .htaccess -> 漂亮的 url(相反)

    我知道如何进行 URL 重写 例如 www example com index php id 1 cat 3 to www example com 1 3 管他呢 我知道 我不知道到底如何更改所有页面中的整个链接以链接到漂亮的 URL 我网
  • 在 Apache 中使用 mod_rewrite 处理中文字符

    我无法找到有关使用中文字符的 Apache mod rewriting 的信息 我能找到的所有信息都与数字有关 我想重写 character php character 宠 其中字符是搜索结果 因此会有所不同 character 宠 这是我
  • PHP 代码确定用户是否被 301 重定向到我的网站

    PHP 是否可以知道用户是否已被 301 重定向到我的网站 So in myoldsite com我的 htaccess 文件中有一个 301 重定向到mynewsite com 我可以在其中放置一些 PHP 代码吗mynewsite co
  • 重写后.htaccess图像不显示

    我有一个问题 URL 已被这样重写 RewriteEngine on RewriteCond REQUEST URI index php RewriteRule index php test 1 NC L 我的图像和 CSS 样式都没有被应
  • URL 重写查询数据库?

    我试图了解 URL 重写的工作原理 我有以下链接 mysite com profile php id 23 我想用用户的名字和姓氏重写上面的网址 mysite com directory liam gallagher 然而 根据我读到的内容
  • htaccess目录索引重定向寻找css错误的地方

    你好 在我的 htaccess 文件中 我放置了此代码以确保我的目录索引文件设置为 v2013 index html 所以我把这段代码 DirectoryIndex v2013 index html 然后我希望它看起来像 mydomain
  • 多个域到单个网站

    我有多个域指向同一个网站 FFFF com FFFF ca FFFF org 等 重写 FFFF com 所有传入流量的最佳方法是什么 URL 重写还是 301 寻找最佳实践 这两个将在 htaccess 中处理 对吧 Thanks 在这种
  • URL 重写 .htaccess

    我正准备开发一个具有以下 url 结构的网站 我是 url 重写的新手 想知道处理此问题的最佳方法 http domain com index php http domain com about about php http domain
  • NGINX hashbang 重写

    我想知道 hashbang url 的位置或重写 nginx 指令会是什么样子 基本上像前端控制器一样通过 hashbang 路由所有非 hashbanged url 所以 http example com about staff 将路由至
  • 使用查询参数值进行 NGINX 301 重定向

    我想重定向example com lang en to example com en 我正在使用 Python Django 我的服务器运行 Plesk Nginx 我尝试像这样在我的网页上重定向 但这是行不通的 rewrite lang
  • ASP.NET - 将所有 https 请求重写为 http

    我的问题正是所提出的问题here https stackoverflow com questions 16276860 iis 7 adding ssl to one site all other sites responds to htt
  • 如何通过 .htaccess 删除 URL 中任何位置的空参数或参数?

    我的意思是空参数可以在 URL 中的任何位置 每次不同的位置 每次使用不同的名称 每次在不同的 php 页面上 例如 http www example com AnyPHPpageHere php parameter1 7 paramete
  • 如何在 Rails 应用程序中删除 URL 的尾部斜杠? (在 SEO 视图中)

    为了避免内容重复 我希望避免通过多个 URL 带或不带尾部斜杠 访问我的网站页面 目前 URL catalog product 1 and catalog product 1 导致同一页面 我的目标是将第二个 URL 重定向到第一个 当然是

随机推荐

  • 如何从字符串中删除
    标签等?

    我需要脱掉所有 br 和所有 引号 和所有 和 并仅用空格替换它们 我怎样才能做到这一点 PHP 语言 我已经尝试过这个 br description preg replace br description 但它又回来了 lt gt 代替每
  • Microsoft.Office.Interop.* 版本 12 和 14 之间有什么区别?

    我已经安装了 Visual Studio 2010 和 Office 2007 当我转到 添加引用 并搜索 Office Interop 时 我可以看到每个引用在版本 12 和 14 中出现两次 我最初尝试了版本 14Microsoft O
  • 如何在 Visual Studio 2010 上安装 Symbolic C++?

    我有Symbolic C 可以与V集成的版本 没有关于如何安装它的文档 我从这个网站得到它 它有它如何工作的示例 http issc uj ac za symbolic symbolic html http issc uj ac za sy
  • 使用来自多个(虚拟)机器的单个 emacs 实例

    我喜欢 emacsclient 它允许我使用单个 Emacs 框架进行所有编辑 甚至当程序想要打开编辑器时 即export EDITOR emacsclient 我也想让它在虚拟机上也能这样工作 我可以在我的单帧设置中使用 Tramp 来使
  • MouseLeftButtonDown 没有被解雇

    我有一个从 UserControl 类派生的 WPF 用户控件 MouseLeftButtonDown 根本没有被控件触发 我添加了事件处理程序并尝试如下 我想它是在其他地方处理的 如何调试并找到它在哪里得到处理 任何帮助都值得赞赏 pro
  • 安装了JDK但没有javap?

    我安装了 JDK 10 0 2 在程序的类文件文件夹中打开 cmd 然后尝试命令 javap Simulation class 我收到错误消息 未找到命令 javap 我做错了什么 你必须有你的 JAVA HOME bin目录添加到系统PA
  • Firebase Admin SDK 是否执行任何缓存?

    我最近一直在使用带有云功能的Firebase 这个问题突然出现在我的脑海中 如果在我的云函数中 使用 Firebase Admin SDK 在单个函数调用中对同一文档执行多次读取 它会算作数据库中的多次读取还是会缓存数据 Example a
  • 在一个项目中混合 Web Api 和 ASP.Net MVC 页面

    如何在一个项目中混合 Web API 和 ASP Net MVC 页面 例如 我有模型用户 我希望在同一个项目中 有一个 ApiController 可以响应所有用于管理用户实体的 HTTP 动词 同时有一个 Controller 可以根据
  • Eclipse 中有效 HTML5 属性的警告

    我使用 Eclipse 并编写包含 HTML5 内容的 jsp 文件 所以我有例如这一行 div class test 在 Eclipse 中我收到警告 Undefined attribute name data role 需要做什么才能使
  • 如何将我的 nib 文件的所有者设置为另一个 nib 文件中的对象?

    我是 Cocoa 新手 无法将我的 nib 文件拆分为多个 nib 文件 My MainMenu nib包含一个Tracker Controller对象 它是一个子类NSObject 它有一个出口Show Tracker我的主菜单中的菜单项
  • 在 Ruby 中解析文本

    我正在编写一个用于导入 SketchUp 组件信息的脚本 他们的帮助页面上有一位非常乐于助人的人 帮助我创建了一个可用于 编辑 的逐行文本文件的文件 现在我准备将其提升到一个新的水平 直接从 FreePCB 创建的原始文件导入 我希望使用的
  • 在 Rust 中,用于连接任意数量的组件来构建路径的宏是什么?

    在Python中 有一个函数叫做os path join 允许使用操作系统的路径分隔符将多个字符串连接到一个路径中 在 Rust 中 只有一个函数join 将字符串或路径附加到现有路径 这个问题无法用普通函数解决 因为普通函数需要有固定数量
  • 我可以在 SQL Server 2005 中使用 MERGE 语句吗?

    我正在使用 SQL Server 2005 我想在 SQL Server 2005 中的单个查询中创建 MERGE 语句或概念 这可能吗 MERGE http technet microsoft com en us library bb51
  • 无需数学函数或对数函数即可查找数字是否为 2 的幂

    我想知道用户输入的数字是否是2的幂 我的代码不起作用 public class power of two public static void main String args Scanner in new Scanner System i
  • Android Studio Preview 3.0 - 运行即时应用程序时应用程序安装失败

    我是运行即时应用程序的新手 我创建了一个新的 Hello World 项目 具有即时应用程序支持 根据安卓开发者文档 https developer android com topic instant apps getting starte
  • 连接两个变量

    这就是我想做的 errmsg 1 Please make changes to your post errmsg 2 Please make changes to your post image error 1 echo errmsg er
  • Android 遥控器如何与 Google TV 配合使用

    关于如何做的任何想法Google TVAndroid 平台上的远程应用程序可以工作 我今天刚尝试过 通过 Wi Fi 进行配对后 它就开始工作了 其背后的理念是什么 好像没有使用Bluetooth 那么在电视上不安装任何组件的情况下它是如何
  • Visual Studio 键绑定配置文件

    Visual Studio 是否有用于其键绑定的人类可编辑的配置文件 选项 gt 环境 gt 键盘 对话框已完全损坏 或者至少使用起来太繁琐 并且自 Visual C 5 以来一直如此 我真的只想转到 Visual Studio 保存键绑定
  • MySQL 8 的 Hibernate 方言?

    MySQL 8 有 Hibernate 方言吗 或者我应该使用 Hibernate 附带的 org hibernate dialect MySQL57Dialect 吗 我正在使用休眠5 2 16 MySQL8Dialect org hib
  • 在 IIS URL Rewrite 2.0 中,为什么 HTTP_HOST 包含端口号?

    我正在尝试使用IIS URL 重写 2 0 http www iis net downloads microsoft url rewrite在 Windows 8 1 上使用 IIS 8 5 根据从重写规则访问 URL 部分 http ww