首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >URLRewrite IIS7

URLRewrite IIS7
EN

Stack Overflow用户
提问于 2010-07-11 23:36:04
回答 1查看 626关注 0票数 2

我正在尝试执行一个简单的URLRewriting。如果你访问azamsharp.com,它会转到某个文件夹浏览结构,它应该转到http://www.azamsharp.com/AzamSharpWebApps/Default.aspx

我不想在URL中看到AzamSharpWebApps :这是我正在使用的URL重写:

代码语言:javascript
复制
 <system.webServer>
    <rewrite>
      <rules>
        <rule name="Virtual Director" enabled="true" stopProcessing="false">
          <match url=".*" />
          <conditions>
            <add input="{MyDomains:{HTTP_HOST}}" pattern="(.+)" />
          </conditions>
          <action type="Rewrite" url="{C:1}{REQUEST_URI}" />
        </rule>
      </rules>
      <rewriteMaps>
        <rewriteMap name="MyDomains">
          <add key="azamsharp.com" value="/AzamSharpWebApps/default.aspx" />
          <add key="www.azamsharp.com" value="/AzamSharpWebApps/default.aspx" />
        </rewriteMap>
      </rewriteMaps>
    </rewrite>

  </system.webServer>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-08-05 08:38:34

我不知道IIS是如何工作的,但是在一般的正则表达式级别上,您希望用/AzamSharpWebApps/$0替换^(?!/AzamSharpWebApps).+

^是字符串的开始,而(?!..)是否定的先行检查,它说:“确保下面的文本不是"/AzamSharpWebApps",然后.+匹配字符串末尾的任何字符。

在替换端,$0表示整个捕获的文本-所以基本上正则表达式是说“如果它还没有以"/AzamSharpWebApps”开头,就给它加上前缀。

(您需要尝试在0美元之前是否需要a/。)

无论如何,看起来IIS使用{C:0}而不是$0,只是为了不同,所以我猜它在规则中看起来像这样:

代码语言:javascript
复制
<match url="^(?!/AzamSharpWebApps).+" />
<action type="Rewrite" url="/AzamSharpWebApps{C:0}" />

但它可能需要的不仅仅是这些。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3223593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档