我写了一条重写规则,将传入的请求重定向到正确的服务器。
这是我的web.config:
<rules>
<rule name="ToMonceau">
<match url="test/(.*)" />
<action type="Rewrite" url="http://10.5.5.83/{R:1}" />
<serverVariables>
<set name="HTTP_X_ORIGINAL_ACCEPT_ENCODING" value="{HTTP_ACCEPT_ENCODING}" />
<set name="HTTP_ACCEPT_ENCODING" value="" />
</serverVariables>
</rule>
</rules>
<outboundRules>
<rule name="AddPrefix" preCondition="IsText" enabled="true">
<match filterByTags="A, Img, Link, Script" pattern="(http://10.5.5.83/mantis/)?(/mantis/)?(.*)" />
<conditions>
<add input="{URL}" pattern="(test/mantis)/(.*)" />
</conditions>
<action type="Rewrite" value="./{R:3}" />
</rule>
<rule name="RestoreAcceptEncofing" preCondition="NeedsRestoringAcceptEncoding">
<match serverVariable="HTTP_ACCEPT_ENCODING" pattern="^(.*)" />
<action type="Rewrite" value="{HTTP_X_ORIGINAL_ACCEPT_ENCODING}" />
</rule>
<preConditions>
<preCondition name="IsText">
<add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/(.+)" />
</preCondition>
<preCondition name="NeedsRestoringAcceptEncoding">
<add input="{HTTP_X_ORIGINAL_ACCEPT_ENCODING}" pattern=".*" />
</preCondition>
</preConditions>
</outboundRules>
当我转到http://localhost/test/mantis(我的服务器在这里托管螳螂)时,我的问题是,网址自动更改为http://localhost/mantis/,我必须再次添加“test /”并将其更改为{{ 3}}。我再次重新输入“test /”,这次显示了登录页面的螳螂。
当我尝试登录时问题仍然存在,通过删除“test /”部分,网址会不断变化。
如果我直接去我的螳螂没有重定向(http://localhost/mantis/login_page.php),一切都像魅力一样。
我的规则中缺少什么才能正确完成?
我在这里以螳螂为例,但我在不同服务器的每个站点主机上遇到同样的问题。
如果我的英语不完美,请提前致谢并对不起。