我正在尝试在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网站上遵循了整个步骤
<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。但它一直显示完整的路径。这里我漏掉了什么?
发布于 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重写规则。
<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>https://stackoverflow.com/questions/57980307
复制相似问题