IIS 7 为 URL Rewrite 模块创建重写规则

IIS 反向代理模块: URL Rewrite 和 Application Request Routing (ARR) 需要设置iis反向代理的场景其实挺多的。例如websocket、Server Sent Events(SSE) 都需要反向代理。IIS 实现反向代理功能,必须同时安装 URL Rewrite 和 Application Request Routing (ARR) 两个模块,缺一不可。具体规则配置可以通过界面配置也可以直接在web.config上配置,一般来说web.config配置更直观。 阅读详情

http://www.cnblogs.com/haogj/p/5041720.html

http://www.cnblogs.com/haogj/p/5041720.html


原文名称:Creating Rewrite Rules for the URL Rewrite Module

原文地址:http://www.iis.net/learn/extensions/url-rewrite-module/creating-rewrite-rules-for-the-url-rewrite-module

原文作者:Ruslan Yakushev

URL Rewrite 模块是 IIS 服务器的一个可下载的扩展模块,在  Windows Azure Web Sites (WAWS) 已经是预安装的,可以直接使用。这个演练教程将带领你创建并验证一系列常用的 URL 重写规则。

前置条件

这个演练需要下列条件:

1. IIS7 或者更高版本,ASP.NET 服务必须启用。

2. 已经安装了 URL Rewrite 模块,详细内容参见:Using the URL Rewrite Module.

创建测试页面

下面的练习将使用 IIS 的默认配置,默认网站将位于 %SystemDrive%\inetpub\wwwroot\  文件夹中。

为了演示 URL Rewrite 模块是如何工作的,我们将创建一个简单的 ASP.NET 页面,这个页面会读取 Web Server  的变量并把它的值输出到页面中。

在 wwwroot 文件夹中,创建名为 article.apsx 的文件,将下面的 ASP.NET 代码复制到这个文件中。

复制代码
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>URL Rewrite Module Test</title>
</head>
<body>
      <h1>URL Rewrite Module Test Page</h1>
      <table>
            <tr>
                  <th>Server Variable</th>
                  <th>Value</th>
            </tr>
            <tr>
                  <td>Original URL: </td>
                  <td><%= Request.ServerVariables["HTTP_X_ORIGINAL_URL"] %></td>
            </tr>
            <tr>
                  <td>Final URL: </td>
                  <td><%= Request.ServerVariables["SCRIPT_NAME"] + "?" + Request.ServerVariables["QUERY_STRING"] %></td>
            </tr>
      </table>
</body>
</html>
复制代码

 

保存之后,在浏览器中访问 http://localhost/article.aspx ,确认可以在浏览器中正确看到页面内容。

创建重写规则

我们将创建下面的简单重写规则。

原地址:http://localhost/article/342/some-article-title

重写后

目标地址:http://localhost/article.aspx?id=342&title=some-article-title

我们将使用 IIS 管理器中的 URL Rewrite 管理界面来创建重写规则,请参考下列步骤:

1. 打开 IIS 管理器

2. 选中 Default Web Site

3. 在特性视图中,点击 URL Rewrite 

 

4. 在右侧的 Action 面板中,点击 Add  Rules... 添加规则

5. 在 Add Rules 添加规则对话框中,选择 Blank Rule 空白规则,然后点击 Ok 确定。

现在可以定义实际的重写规则了。在 URL  Rewrite 模块中,每个重写规则必须提供下面的四个信息:

1. 规则名称

2. 匹配目标 URL 的正则表达式模板。

3. 条件选项

4. 在模板匹配,并且条件成立的情况下,需要采取的动作。

管理规则

在 Name 名称文本框中,输入一个唯一的规则名称,比如:"Rewrite to article.aspx"

定义匹配的正则表达式

在 Pattern 匹配模板文本框中,输入如下的正则表达式。

^article/([0-9]+)/([_0-9a-z-]+)

 

这是一个正则表达式,将会匹配符合下面规则的众多 URL 地址。

1. 开始的字符序列是 "article/"

2. 在第一个 / 之后,包含一个或者多个数字字符

3. 在第二个 / 之后,包含一个或者多个字母,数字,下划线或者连字线。

注意,在正则表达式中使用了圆括号,圆括号用来创建捕获组,在后面可以通过反向引用来使用它。

定义动作

因为我们定义的规则希望重写 URL,在 Action Type  下拉列表框中选择 Rewrite 重写动作类型,在重写目标的 Rewrite URL 输入框中,输入下面的内容。

article.aspx?id={R:1}&title={R:2}

 

这里使用指定了一些变量用于重写 URL,注意在查询字符串中,我们使用了 {R:1} 和 {R:2},这些就是刚刚提到的反向引用。

对于其它设置我们使用默认值,这样整个编辑规则的页面应该看起来如下所示。

在右边的面板中,点击 Apply 保存规则。

在配置文件中查看重写规则

我们定义的重写规则将会保存在 ApplicationHost.config 或者 Web.config 中。为了查看我们刚刚创建的重写规则,打开位于  %SystemDrive%\inetpub\wwwroot\ 中的 Web.config 文件,应该在 <rewrite> 配置节中看到如下的内容。

复制代码
<rewrite>
  <rules>
    <rule name="Rewrite to article.aspx">
      <match url="^article/([0-9]+)/([_0-9a-z-]+)" />
      <action type="Rewrite" url="article.aspx?id={R:1}&amp;title={R:2}" />
    </rule>
  </rules>
</rewrite>
复制代码

 

上面的语法也同样适用于  Windows Azure Web Sites (WAWS) 中的 Web.config 。

测试重写规则

  打开浏览器,在地址栏中输入:http://localhost/article/234/some-title

你会在页面中看到服务器的重写规则将 URL 修改为 Article.aspx,并且将 234 和 "some-title" 作为查询参数传递。

创建重定向规则

下面我们创建一个重定向规则。

源地址:http://localhost/blog/some-other-title/543 

定向为:http://localhost/article/543/some-other-title

重定向规则可以将多个 URL 地址定向到同一个地址页面。

打开 IIS 管理器的 URL Rewrite 特性窗口,点击 Add Rule(s)... 添加规则,再次选择 Blank Rule 空白模板。

在编辑规则的页面中,输入下列内容:

1. 规则名称:Redirect from blog (这是规则的唯一名称)

2. 匹配模板:^blog/([_0-9a-z-]+)/([0-9]+) (这个模板用来匹配以 blog 开头的地址,捕获第二和第三节用于反向引用)

3. 动作:Redirect (重定向动作导致向浏览器发送一个 redirect 响应)

4. 目的 URL:article/{R:2}/{R:1} (这个模板用于重定向,注意,这里使用反向引用使用了前面的捕获组)

输入之后的界面应该如下所示。

输入 redirect URL 之后。

其它配置保持不变,在右面的面板中点击 Apply 应用规则。

测试重定向规则

打开一个浏览器,在地址栏中输入:http://localhost/blog/some-other-title/323

在浏览器中,你会看到地址被重定向到 http://localhost/article/323/some-other-title。

创建访问限制规则

第三个规则,我们将阻止没有特定请求头的请求。这个规则可以用来阻止使用 Ip  地址代替主机名称的黑客攻击。

这次,我们不使用 IIS 管理器来创建规则,而是直接在位于  %SystemDrive%\inetpub\wwwroot\ 的  Web.config 中创建规则。找到 <rewrite> 配置节,在 rules 部分将新内容插入到最前面,使这个新规则成为规则集中的第一个规则。

复制代码
<rule name="Fail bad requests">
      <match url=".*"/>
      <conditions>
        <add input="{HTTP_HOST}" pattern="localhost" negate="true" />
      </conditions>
      <action type="AbortRequest" />
</rule>
复制代码

 

现在的全部的重写规则如下所示。

复制代码
<rewrite>
  <rules>
    <rule name="Fail bad requests">
      <match url=".*"/>
      <conditions>
        <add input="{HTTP_HOST}" pattern="localhost" negate="true" />
      </conditions>
      <action type="AbortRequest" />
    </rule>
    <rule name="Redirect from blog">
      <match url="^blog/([_0-9a-z-]+)/([0-9]+)" />
      <action type="Redirect" url="article/{R:2}/{R:1}" redirectType="Found" />
    </rule>
    <rule name="Rewrite to article.aspx">
      <match url="^article/([0-9]+)/([_0-9a-z-]+)" />
      <action type="Rewrite" url="article.aspx?id={R:1}&amp;title={R:2}" />
    </rule>
  </rules>
</rewrite>
复制代码

 

理解一下刚刚定义的规则。

<match url=".*"/>

 

这个匹配规则说我们将会匹配任何的 URL

<add input="{HTTP_HOST}" pattern="localhost" negate="true" />

 

这个元素为规则创建了一个条件,通过读取 HTTP_HOST 来获取请求地址中的主机部分,匹配 localhost ,然后取反。也就是说,这个条件检查请求地址中的 Host 不包含 localhost。

<action type="AbortRequest" />

 

这个动作中止请求的处理。

测试限制访问规则

打开浏览器,通过 Ip 地址访问我们的服务器:http://127.0.0.1/article/234/some-title,你应该没有从服务器得到任何响应。如果你使用 http://localhost/article/234/some-title,访问应该成功。

不成功的访问结果如下。

而成功的访问如下。

 

总结

在这个演练中,我们学习了如何创建 URL Rewrite 规则,既通过 IIS 管理器方式,也通过手动方式。这个演练演示了 URL  Rewrite 模块的主要使用方式,比如正则表达式的支持,以及通过 HTTP 请求头的信息和服务器变量来作为重写的条件。
IIS7上进行URL重写(Windows主机) IIS7本地不支持。htaccess文件。虽然有插件可以添加这个支持,您也可以htaccess规则导入到IIS使用CakePHP的原生重写。要做到这一点,遵循这些步骤: 使用微软Web平台安装程序2.0安装URL重写模块或直接下载它(32位/ 64位)。 创建一个名为web的新文件。配置在CakePHP根文件夹。 使用记事本或任何对它们进行编辑,将下面的代码复制到你的新网站。配置文件 阅读详情

相关推荐

URL优化之IIS7如何开启伪静态

iis7跟IIS6开启伪静态重写的方式不一样,iis6是在网站属性里面的ISAPI筛选器里面添加,但是iis7添加伪静态重写,需要下载一个url重写插件。 II7/7.5用的是web.config配置文件,这个配置文件可以配置伪静态、301等等功能。 web.config文件可以配置伪静态,但是前提是IIS中有“URL Rewrite模块”,但是很多情况下IIS7默认没有安装这个模块,

lcradio的专栏 7639

IIS 无法安装URL重写模块的解决办法 UrlReWrite (.NET`SQL技术交流 群号206656202)

下载和安装URL Rewrite IIS8默认是没有安装URL重写工具的,必须要自己下载安装。 如果IIS上默认有安装Web平台安装程序,我们可以使用平台自动安装URL Rewrite重写工具,打开IIS(Internet 信息服务管理器),在管理器主页中找到管理项,打开Web平台安装程序,如下图: 在Web平台安装程序中选择产品》服务器,在列表中找到URL重写工具,点击添加后点击安装,...

weixin_33889245的博客 3579

IIS服务器URL重写配置完整教程

本文介绍了如何在IIS服务器上配置URL重写功能。首先,从指定链接下载并安装URLRewriteModule 2.1和Application Request Routing (ARR)。安装完成后,启用ARR的代理功能。接着,在IIS中打开URL重写功能,并添加一个空白规则,将/api/重写为http://localhost:5566/api/。配置完成后,通过访问http://localhost/api/sys/auth/b/getLoginUser测试重写是否生效,确保请求被正确重定向到http://l

2048

翻译:为 URL Rewrite 模块创建重写规则

原文名称:Creating Rewrite Rules for the URL Rewrite Module 原文地址:http://www.iis.net/learn/extensions/url-rewrite-module/creating-rewrite-rules-for-the-url-rewrite-module 原文作者:Ruslan Yakushev URL Rewrite...

weixin_34355559的博客 527

掌握IIS URL重写模块:从入门到防盗链实现

在现代Web服务器的管理与维护中,IIS Rewrite组件扮演着至关重要的角色。作为一个强大的URL重写工具,它广泛应用于改善网站结构、提升搜索引擎优化(SEO)效果以及增强网站安全性的诸多场景。在本章节中,我们将简要介绍IIS Rewrite组件的基本概念,了解其如何通过一系列可配置的规则动态地修改URL请求,以此帮助开发者实现各种Web应用需求。无论是初入行业的开发者还是经验丰富的老手,掌握IIS Rewrite组件的使用都能为工作带来极大的便利。

weixin_28913879的博客 1135

学习笔记9--智能驾驶的功能安全设计之功能安全设计

本系列博客包括6个专栏,分别为:《自动驾驶技术概览》、《自动驾驶汽车平台技术基础》、《自动驾驶汽车定位技术》、《自动驾驶汽车环境感知》、《自动驾驶汽车决策与控制》、《自动驾驶系统设计及应用》。此专栏是关于《自动驾驶系统设计及应用》书籍的笔记.

FUXI_Willard 1795

IIS 7 为 URL Rewrite 模块创建重写规则

URL Rewrite 模块是 IIS 服务器的一个可下载的扩展模块,在 Windows Azure Web Sites (WAWS) 已经是预安装的,可以直接使用。这个演练教程将带领你创建并验证一系列常用的 URL 重写规则。 前置条件 这个演练需要下列条件: IIS7 或者更高版本,ASP.NET 服务必须启用。 已经安装了 URL Rewrite 模块,详细内容参见:Using t...

Zola的博客 1066

实测OV5640 DVP/MIPI接口720p@60fps配置,为什么我的Zynq-7020开发板只有30帧?

本文深入解析了OV5640摄像头在Zynq-7020开发板上帧率减半的问题,从寄存器配置到硬件链路进行全面排查。重点分析了DVP/MIPI接口的720p@60fps配置,提供了关键寄存器设置、时序参数调整及硬件带宽验证方法,帮助开发者快速定位并解决帧率下降问题。

weixin_42634811的博客 344

IIS7 运行Thinkphp,支持rewrite

TP在本机运行非常好,谁想到服务器上后,连http://www.***.com/wap/login/index都404错误了, 中间的郁闷过程不表。 解决方案分两步: 第一步: 下载rewrite_2.0_rtw_x64.msi,在IIS7的服务器上安装,安装后,重启IIS,我是用开始-运行-iisreset重启IIS的,这时再打开IIS,会发现多了一个新的模块: 就是中间这个U

云上人间钦自赏 9358

深入解析XTEA加密算法的核心机制与优化策略

本文深入解析XTEA加密算法的核心机制与优化策略,详细介绍了XTEA在嵌入式系统和资源受限环境中的优势,包括其高效的加解密速度和低资源消耗。文章还探讨了XTEA的轮函数设计、关键参数优化策略以及实战应用中的性能对比,为开发者提供了安全增强方案和优化技巧。

k8l9m0n的博客 242

浅谈功放PA的VBW

摘要:VBW(视频带宽)反映功放的宽带非线性特性和记忆效应,影响数字预失真(DPD)校正能力。其成因是功放管寄生参数(如Cshunt和Leff)形成低频并联谐振,导致供电臂阻抗增大,引发电压波动和记忆效应。测试方法包括双音IM3/IM5测试(以两侧IM3差≥3dB定义VBW)和魔T测试(通过S21曲线测量谐振频率)。改善措施主要是减小Leff,如采用双电源平衡馈电。VBW指标要求通常为魔T测试结果大于3倍信号带宽,以确保功放线性度。

weixin_49761275的博客 1574

伪静态php配置,PHP开启伪静态配置

1.检测Apache是否开启mod_rewrite功能可以通过php提供的phpinfo()函数查看环境配置,找到“Loaded Modules”,其中列出了所有apache2handler已经开启的模块,如果里面包括“mod_rewrite”,则已经支持,不再需要继续设置。如果没有开启“mod_rewrite”,则打开目录 apache目录下的“/apache/conf/” ,找到 httpd....

weixin_35777914的博客 1065

【实战指南】OpenClaw 使用 Bird Skill 接入 X(Twitter)的终极省心方案:告别每次都要手动喂 Cookie 的痛苦

OpenClaw 使用 Bird Skill 接入 X(Twitter)的终极省心方案:告别每次都要手动喂 Cookie 的痛苦

hampeter的博客 1802

Microsoft URL Rewrite Module for IIS 7.0

在IIS5和IIS6时代,我们使用URL REWRITING可实现URL重写,使得WEB程序实现伪静态,但默认情况下只能实现.ASPX的伪静态,如果要实现伪静态*.HTML的页面,需要将ISAPI里面的*.HTML应用程序映射改为.NET的ISAPI。但在IIS 7时代,这一切已经变得非常简单了,您在WEB.CONFIG中就可以管理这一切了。 在服务器上安装好Microsoft URL

简单的快乐 3244

Twincat Scopeview录波中的Ringbuffer设置技巧与常见问题解决

本文深入解析了倍福Twincat Scopeview录波功能中Ringbuffer(环形缓冲区)的核心设置技巧与常见问题解决方案。针对数据丢失、触发时机不准等痛点,详细阐述了缓冲区大小、预触发样本、采样率等关键参数的优化配置,并提供了多通道同步、自动诊断等实战应用指南,帮助工程师高效捕捉和分析PLC数据。

rainy的博客 845

YOLO11实战优化:长尾分布解决 | 引入Seesaw Loss配合YOLO11分类头,完美应对类别极其不平衡的现实业务场景

摘要: YOLO11在工业缺陷检测等长尾分布场景中面临尾部类别检测失效的问题,根源在于头部类别样本的负样本梯度压制了尾部类别的学习。传统方法如重采样、Focal Loss等效果有限。Seesaw Loss通过动态调整缓解因子和补偿因子,平衡类别间的梯度分布,结合YOLO11的解耦分类头、Anchor-Free设计和C2PSA/C3K2模块,显著提升尾部类别识别能力。文章详细解析了Seesaw Loss的数学原理,并提供了可直接集成到YOLO11的PyTorch实现代码,为长尾分布下的目标检测提供了实用解决方

2601_95807009的博客 252

利用IIS 7.0的URL Rewrite 模块产生用户友好的URL

 很友好的URL地址,使访问的人很容易记住。要求你的用户记住“ http://www.contoso.com/article.aspx?id=342&title=URL-Rewrite-Walkthrough” 这样的网址并不是件很美妙的事。如果给用户提供如下URL地址:http://www.contoso.com/article/342/URL-Rewrite-Walkthrough,就能更好引

海风~ 578

华为OD机试真题 新系统【查找温度记录统计信息】

华为OD机试 新系统真题【查找温度记录统计信息】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【查找温度记录统计信息】多语言题解。

qq_45776114的博客 486

Windows 2008 R2上配置IIS7或IIS7.5中的URLRewrite(URL重写)实例

Windows 2008 R2上配置IIS7或IIS7.5中的URLRewrite(URL重写)实例 1. 安装URL Rewrite模块 首先从官网下载安装URL Rewrite Module 2.0,下载页面 或者直接点击这里下载: rewrite_x86_zh-CN.msi2014 – 5.43M rewrite_x64_zh-CN.msi2014 –

秋水之城 2万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

windows 2008 IIS7 URL Rewrite 用法

调试网站发现 IIS7的HTTP 500.19错误后面一看客户的网站用的有url Rewrite,参考这个使用方法和说明。 很友好的URL地址,使访问的人很容易记住。要求你的用户记住“ http://www.contoso.com/article.aspx?id=342&title=URL-Rewrite-Walkthrough” 这样的网址并不是件很美妙的事。如果给用户提供如下URL地址:

lizhi125的专栏 2065

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

IIS的url-rewrite配置预压缩

url-rewrite是网页服务器的一项功能: 1. 入站规则:可以用于重写访问的url路径,可以把符合条件的请求的url路径路由到另一个url路径上去。 2. 出站规则:可以根据一些条件,如消息的类型,修改返回消息的类型等内容。

春夜喜雨的专栏 941

【转】Windows7下IIS7.5的伪静态URL Rewrite安装配置和案例综合

安装: 关于Windows 7下IIS7.5的伪静态的介绍好像很少,一般都是Vista下的IIS7.0,不过好在IIS7.0和IIS7.5差别并不是很大,不过对于我这个直接从IIS5.1跳到IIS7.

w36680130的博客 1458

iis默认index.php,IIS Rewrite 去除url里的index.php

ISAPI_Rewrite的URL伪静态规则URL重写通常的URL里面含有index.php,为了达到更好的SEO效果可能需要去掉URL里面的index.php ,通过URL重写的方式可以达到这种效果,通常需要服务器开启URL_REWRITE模块才能支持。'URL_DISPATCH_ON'=>true,'URL_MODEL'=>2, //开启了Rewrite,隐藏了index.ph...

weixin_30630377的博客 815
上一篇: 程序员分级
下一篇: php 统计网站流量
QQ7650371
博客等级 码龄11年 164粉丝 192原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值