0

これに対する多くの解決策を見てきましたが、どれもうまくいかないようです....

ドメインを持っています

producerpte.co.uk

しかし、サブフォルダーに別のアプリケーションをセットアップしているので、そのアプリケーションのルートを確認するには、そこに移動する必要があります...

producerpte.co.uk/producerpte

ただし、ユーザーが URL の「site1」の部分を見ないようにしたいのです。

構成で URL 書き換えをWeb.Server使用するかContext.RewritePath、コードで (ルートに設定されたアプリケーションで) 使用すると、ユーザーは単に (site1 を含む) URL にリダイレクトされます。サブフォルダーに移動することをユーザーに知らせたくありません。 .

私はこれを間違って設定していますか?

私は実際にWinhostを使用しています。私が試したすべての例は、URLをリダイレクトせずに呼び出しの結果を変更しません:-(

コード/構成でそれを行う必要があるとwinhostから言われました。正直なところ、コードでやりたいのですが....

更新:マックスの答えを試してみました...

 <rules>
    <rule name="Redirect if producerpte" stopProcessing="true">
        <match url="^ producerpte/(.*)$" />
        <action type="Redirect" url="{R:1}" />
    </rule>
    <rule name="Rewrite to sub folder">
        <match url="^.*$" />
        <action type="Rewrite" url="producerpte/{R:0}" />
    </rule>
  </rules>

しかし、運が悪い:-(そして、URLはブラウザでまだ変更されています....

4

1 に答える 1

3

WinHost が IIS 書き換えモジュールを有効にした場合は、web.configファイルを編集して、次のルールを試してください。

<rewrite>
<rules>
    <rule name="Redirect if site1" stopProcessing="true">
        <match url="^site1/(.*)$" />
        <action type="Redirect" url="{R:1}" />
    </rule>
    <rule name="Rewrite to sub folder">
        <match url="^.*$" />
        <action type="Rewrite" url="site1/{R:0}" />
    </rule>
</rules>
</rewrite>

- - アップデート - -

さて、私はこの IIS 構成をテストしました:

ここに画像の説明を入力

ルートサイトにルールを追加しました。
IIS がweb.configファイルを作成しました:

ここに画像の説明を入力

web.config ファイルの内容は次のとおりです。

<configuration>
    <system.webServer>
        <rewrite>
             <rules>
                <rule name="Redirect if producerpte" stopProcessing="true">
                    <match url="^producerpte/(.*)$" />
                    <action type="Redirect" url="{R:1}" />
                </rule>
                <rule name="Rewrite to sub folder">
                    <match url="^.*$" />
                    <action type="Rewrite" url="producerpte/{R:0}" />
                </rule>
              </rules>
        </rewrite>
    </system.webServer>
</configuration>
  • http://localhost:8066/C:\inetpub\wwwroot\producerpte\producerpteブラウザの URL を変更せず に のコンテンツを表示します

  • http://localhost:8066/producerpte/のコンテンツを表示しC:\inetpub\wwwroot\producerpte\producerpteますが、ブラウザの URL は次のように変更されますhttp://localhost:8066/

ルートサイト (サブ アプリケーションではなく)にルールを作成したことを確認してください。構成の先頭にと<match url="^ producerpte/(.*)$" />の間にスペースがあることに気付きました。^producerpte

于 2013-06-12T20:38:26.363 に答える