0

私は 2 つのサイトを作成しました。1 つはデフォルト サイトであるポート 80 にあり、もう 1 つはポート 786 にあります。ユーザーが URL http://myurl.com/Applicationを開くと、 http://myurlを開く必要があります。 com:786/アプリケーション。IIS 7.5 Rewrite モジュールをインストールしました。たとえば、さまざまな方法でコードを試しました

<rule name="Red" stopProcessing="true">
        <match url=".*" />
    <conditions logicalGrouping="MatchAll">
                          <add input="{HTTP_HOST}" pattern="www.myurl.com/Application" />

             </conditions>

        <action type="Rewrite" url="http://{HTTP_HOST}:786/{R:0}" />
    </rule>
4

2 に答える 2

0

301パーマネントリダイレクトが好きだと思います。これを行うには、HttpModule を使用できます。

public class CustomHttpModule : IHttpModule
{

    private HttpApplication app;

    public void Init(HttpApplication context)
    {
        app = context;
        app.AuthorizeRequest += App_AuthorizeRequest;
    }

    public void App_AuthorizeRequest(object sender, EventArgs e)
    {
        HttpRequest req = app.Request;
        string path = req.Path;

        // if starts with http://{HTTP_HOST}
        if (path.StartsWith("http://{HTTP_HOST}", true, CultureInfo.CurrentCulture))
        {
            string redirectUrl = path.Replace("http://{HTTP_HOST}", "http://{HTTP_HOST}:786");
            app.Response.StatusCode = 301;
            app.Response.AddHeader("Location", redirectUrl);
            app.Response.End();
        }
    }

    public void Dispose()
    {

    }
}

また、この HttpModule を system.webserver ノードと system.web ノードで構成する必要があります。

于 2012-08-08T02:25:25.050 に答える
0
<add input="{REQUEST_URI}" matchType="Pattern" pattern="^/Application$" ignoreCase="true" negate="false" />

this can only resolve the issue.

于 2012-08-12T21:10:55.007 に答える