首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Regex重写规则在IIS上不起作用

使用Regex重写规则在IIS上不起作用
EN

Stack Overflow用户
提问于 2019-09-18 02:45:54
回答 1查看 168关注 0票数 0

我正在尝试在Windows Server 6.2上编写重写规则。虽然我使用IIS管理器来创建代码,但它不起作用。

我尝试了stopProcess true/false,使用不同的正则表达式,重新启动服务器几次。什么都没变。我在微软的https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/creating-rewrite-rules-for-the-url-rewrite-module网站上遵循了整个步骤

代码语言:javascript
复制
<system.webServer>
    <rewrite>
      <rules>
        <rule name="Rewrite to e-campus" stopProcessing="true">
          <match url="[^\/]+\/\/([^\/]+:?[0-9]?)\/.*" />
          <action type="Rewrite" url="{R:1}" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>

我只想显示主URL。我的域名是http://e-campus.example.com

例如,如果有人访问该链接:http://e-campus.example.com/Login/Student服务器应重写为e-campus.example.comhttp://(但这并不重要)

所以基本上我只想显示主URL。但它一直显示完整的路径。这里我漏掉了什么?

EN

回答 1

Stack Overflow用户

发布于 2019-09-18 10:26:17

根据你的描述,我发现你的正则表达式与整个网址匹配。但是iis url重写不会得到整个域,它只会得到url的一部分,而不是整个url。

例如:

如果您的url是http://e-campus.example.com/Login/Student。,则匹配url部分为login/Student

因此,如果你想重写e-campus.example.com的所有请求,你应该使用下面的url重写规则。

代码语言:javascript
复制
<system.webServer>
    <rewrite>
      <rules>
        <rule name="Rewrite to e-campus" stopProcessing="true">
          <match url="(.*)" />
          <action type="Rewrite" url="http://e-campus.example.com/" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57980307

复制
相关文章

相似问题

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