繁体   English   中英

iis重写保持路径(保留文件名以外的所有内容)

[英]iis rewrite keep path (keep everything but the file name)

试图重新路由

https://xxxxx.aaa.bb.cc.dd/FOB_Main.aspx?FOB = O
https://xxxxx.aaa.bb.cc.dd/FOB_Main_Rewrite.aspx?FOB = O

https://xxxxx.aaa.bb.cc.dd/testdev/FOB_Main.aspx?FOB = O
https://xxxxx.aaa.bb.cc.dd/testdev/FOB_Main_Rewrite.aspx?FOB = O

https://xxxxx.aaa.bb.cc.dd/net/prodmirror/FOB_Main.aspx?FOB = O
https://xxxxx.aaa.bb.cc.dd/net/prodmirror/FOB_Main_Rewrite.aspx?FOB = O

因此,请保留aspx页面和查询字符串之前的所有内容。 并将其替换为新的aspx页。 (仅替换文件名,并保留其他所有内容)

这是我的尝试。

  <rule name="Fob_Main_decommisioned" stopProcessing="true">
    <match url="^fob_main.aspx" />
    <action type="Redirect" url="/FOB_Main_Rewrite.aspx" redirectType="Temporary" />
  </rule>

这工作正常

https://xxxxx.aaa.bb.cc.dd/FOB_Main.aspx?FOB = O
https://xxxxx.aaa.bb.cc.dd/FOB_Main_Rewrite.aspx?FOB = O

但它正在改变。

https://xxxxx.aaa.bb.cc.dd/testdev/FOB_Main.aspx?FOB = O
https://xxxxx.aaa.bb.cc.dd/FOB_Main_Rewrite.aspx?FOB = O

我也尝试过

<rule name="Fob_Main_decommisioned" stopProcessing="true">
        <match url="^fob_main.aspx" />
        <action type="Redirect" url="{HTTP_HOST}/FOB_Main_Rewrite.aspx" redirectType="Temporary" />
      </rule>

但现在我越来越

https://xxxxx.aaa.bb.cc.dd/testdev/xxxxx.aaa.bb.cc.dd/FOB_Main_Rewrite.aspx?FOB = O

我也尝试过

<rule name="Fob_Main_decommisioned" stopProcessing="true">
    <match url="(^.*)fob_main.aspx" />
    <action type="Redirect" url="/{R:1}FOB_Main_Rewrite.aspx" redirectType="Temporary" />
  </rule> 

但我回到

https://xxxxx.aaa.bb.cc.dd/FOB_Main_Rewrite.aspx?FOB = O

(它再次删除了testdev)

有趣地使用此规则

 <rule name="Fob_Main_decommisioned" stopProcessing="true">
         <match url="(^.*)fob_main.aspx" />
        <action type="Redirect" url="/{R:1}FOB_Main_Rewrite.aspx" redirectType="Temporary" />

并直接输入浏览器

https://xxxxx.aaa.bb.cc.dd/testdev/testdev/FOB_Main.aspx?FOB = O

重新将我路由到我想去的页面。

https://xxxxx.aaa.bb.cc.dd/testdev/FOB_Main_Rewrite.aspx?FOB = O

该规则看起来正确(如果您将此规则放置在根应用程序中):

<rule name="Fob_Main_decommisioned" stopProcessing="true">
   <match url="(^.*)fob_main.aspx" />
   <action type="Redirect" url="/{R:1}FOB_Main_Rewrite.aspx" redirectType="Temporary" />
</rule> 

如果将此规则放在子应用程序中,它将起作用:

<rule name="Fob_Main_decommisioned" stopProcessing="true">
    <match url="^fob_main.aspx" />
    <action type="Redirect" url="FOB_Main_Rewrite.aspx" redirectType="Temporary" />
</rule>

很可能您返回到https://xxxxx.aaa.bb.cc.dd/FOB_Main_Rewrite.aspx?FOB=O ,因为浏览器之前缓存了错误的重定向。 您能否执行以下步骤:

  1. 应用此规则
  2. 清除浏览器中的缓存
  3. 尝试打开https://xxxxx.aaa.bb.cc.dd/testdev/FOB_Main.aspx?FOB = O

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM