在我的IIS上,我以以下方式配置了重写规则。
有一个路由器站点,它侦听端口80并通过指定的资源(例如,当用户进入主机时)重写到适当的网站
http://testpage.com/current
它将其重写到端口5001下托管的另一个网站。示例配置:
<rule name="RewriteRule" stopProcessing="true">
<match url="^current(.*)?" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<action type="Rewrite" url="http://{HTTP_HOST}:5001/{R:1}" />
</rule>
5001下托管的站点包含索引。html和javascript文件
index.js
其中引用了
index.html
这样地:
<script type="text/javascript" src="/index.js">
当我更换时,整个配置工作得非常好
<match url="^current(.*)?" />
具有
<match url="^(.*)?" />
但是当我使用
current
然后在这里找到
指数html
位于端口5001下托管的页面中,但找不到
指数js公司
. 我怀疑原因是因为它试图找到
/current/index.js
但它并不存在。
我一直认为
RewriteRule
基本上应该将url重写为
http://testpage.com:5001
然后获取
指数html
并决心
指数js公司
来自当前目录,所以它不应该有任何关于“当前”资源的知识。
有没有简单的方法来解决这个问题?
显然,当我这样进入网站时:
http://testpage.com:5001
,绕过重写规则,工作正常。