gpt4 book ai didi

.net - IIS网址重写不起作用-404错误

转载 作者:行者123 更新时间:2023-12-02 04:54:08 24 4
gpt4 key购买 nike

我正在IIS7中使用URL重写功能。我在端口80上建立了一个网站,并提供了一些URL重写规则。

第一条规则需要指向端口8090上的Web应用程序,而另一条规则需要指向端口8091上的Web应用程序。

需要配置规则,以便:

  • http://localhost/重写为http://localhost:8090
  • http://localhost/test重写为http://localhost:8091

  • 这是我使用的规则:
    <system.webServer>
    <rewrite>
    <rules>
    <clear />
    <rule name="Site2" enabled="true" stopProcessing="true">
    <match url="^.*/test/.*" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
    <action type="Rewrite" url="http://{HTTP_HOST}:8091/{R:0}" />
    </rule>
    <rule name="Site1" enabled="true" stopProcessing="true">
    <match url=".*" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
    <action type="Rewrite" url="http://{HTTP_HOST}:8090/{R:0}" />
    </rule>
    </rules>
    </rewrite>
    </system.webServer>

    我将提到“Site1”规则有效。如果转到 http://localhost/,将显示端口8090上托管的Web应用程序。如果转到 http://localhost/test,将显示404错误。

    最佳答案

    我最终还是按要求完成了这项工作。以下是在端口80托管的默认网站上使用的web.config文件。
    这允许我做的是浏览到http://my.domain.com/test1并获取托管在http://localhost:8093/test1上的网站。

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
    <system.webServer>
    <httpRedirect enabled="false" destination="https://my.domain.com" exactDestination="true" />
    <rewrite>
    <rules>
    <clear />
    <rule name="Redirect to correct test1 address" stopProcessing="true">
    <match url="^test1$" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
    <action type="Redirect" url="http://my.domain.com/test1/" />
    </rule>
    <rule name="Redirect to correct test2 address" stopProcessing="true">
    <match url="^test2$" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
    <action type="Redirect" url="http://my.domain.com/test2/" />
    </rule>
    <rule name="Redirect to correct test3 address" stopProcessing="true">
    <match url="^test3$" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
    <action type="Redirect" url="http://my.domain.com/test3/" />
    </rule>

    <rule name="Reverse Proxy to test1" stopProcessing="true">
    <match url="^test1/*(.*)" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
    <action type="Rewrite" url="http://localhost:8093/test1/{R:1}" />
    </rule>
    <rule name="Reverse Proxy to test2" stopProcessing="true">
    <match url="^test2/*(.*)" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
    <action type="Rewrite" url="http://localhost:8093/test2/{R:1}" />
    </rule>
    <rule name="Reverse Proxy to test3" stopProcessing="true">
    <match url="^test3/*(.*)" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
    <action type="Rewrite" url="http://localhost:8093/test3/{R:1}" />
    </rule>
    </rules>
    </rewrite>
    </system.webServer>
    </configuration>

    关于.net - IIS网址重写不起作用-404错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24692189/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com