0

私は3つのウェブサイトを持っています。1つのdiscountasp.Netサーバーにあるフォルダー内の1つのメインサイトと2つのサブサイト(www.sitea.com、www.siteb.com、およびwww.sitec.com)。

web.configファイルのURLリダイレクトを使用して、トラフィックをサブサイト(sitebおよびsitec)にリダイレクトします。

<rule name="siteb" stopProcessing="true">
          <match url=".*" />
          <conditions>
            <add input="{HTTP_HOST}" pattern="^www.siteb.com$" />
            <add input="{PATH_INFO}" pattern="^/siteb/" negate="true" />
          </conditions>
          <action type="Rewrite" url="\siteb\{R:0}" />
        </rule>
        <rule name="sitec" stopProcessing="true">
          <match url=".*" />
          <conditions>
            <add input="{HTTP_HOST}" pattern="^www.sitec.com$" />
            <add input="{PATH_INFO}" pattern="^/sitec/" negate="true" />
          </conditions>
          <action type="Rewrite" url="\sitec\{R:0}" />
        </rule>

私の問題は、一般の人がwww.sitea.com/siteb/と入力して、この方法でサブサイトにアクセスできるようにしたくないということです。

これを停止するようにサーバーを構成するにはどうすればよいですか?

ありがとう

4

2 に答える 2

0

ページが読み込まれると、次のようにページリファラーを取得できます。

Dim myReferer as string = Request.UrlReferrer

これにより、ページの出所がわかります。次に、その文字列を分割して比較を行うことができます。

もう1つの方法は、リダイレクトを使用してクエリ文字列を渡すことです。次に、ページが読み込まれたときに、そのクエリ文字列を確認します。存在しない場合は、ページをリダイレクトするか、エラーを表示してください。

クエリ文字列を使用したリダイレクトの例:

Response.Redirect("myPage.aspx?myId=SomeId")

次に、myPageで文字列を確認します。

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
     myString as string =  Request.QueryString("myId")

end Sub
于 2013-02-28T15:05:51.020 に答える
0

アクセスしようとしているユーザーをリダイレクトする2番目のルールを作成できwww.sitea.com/siteb/ますwww.siteb.com

次のようになります。

<rules>
    <rule name="Rewrite to siteb.com" stopProcessing="true">
        <match url="^siteb/" negate="true" />
        <conditions>
            <add input="{HTTP_HOST}" pattern="^(www\.)?siteb\.com$" />
        </conditions>
        <action type="Rewrite" url="/siteb/" />
    </rule>
    <rule name="Prevent direct access">
        <match url="^siteb/" />
        <conditions>
            <add input="{HTTP_HOST}" pattern="^(www\.)?sitea\.com" />
        </conditions>
        <action type="Redirect" url="http://siteb.com" />
    </rule>
</rules>

ルールを少し変更しRewriteて短くしました。
Redirectデフォルトで301(永続的)を送信します。直接
アクセスしようとするすべての人はにリダイレクトされ、それ自体が最初のものを書き換えます()www.sitea.com/siteb/www.siteb.comwww.sitea.com/siteb/

于 2013-02-28T21:28:38.670 に答える