2013-03-06 10 views
5

私はこれが初めてではないと思う。実際にサブドメインをサーバに作成せずにasp.netのサブドメインとしてURLを書き換える方法

私は例えば query string値 を使用している私のウェブサイト内のURLとしました

http://yehaa.foo.com/

http://foo.com/xyzPage.aspx?barvalue=yehaa

を、それがなくてを行うことができる方法を提案してください。実際にサーバー上にサブドメインを作成しています ..

私はが7.5は、サーバー・マシンにインストールされ、Asp.net 4.0を使用してIISました。

感謝

+0

IIS用の書き換えモジュールを使用して行うことができます。 – cheesemacfly

+0

どのような例をお願いしますか? –

答えて

12

たちのコメントは以下のEDIT

http://yehaa.foo.com/を使用してhttp://foo.com/xyzPage.aspx?barvalue=yehaaにアクセスするには、次のルールを使用する必要があります。

<rules> 
    <rule name="Rewrite subdomains"> 
     <match url="^/?$" /> 
     <conditions> 
      <add input="{HTTP_HOST}" pattern="^(.+)\.foo\.com$" /> 
     </conditions> 
     <action type="Rewrite" url="http://foo.com?barvalue={C:1}" /> 
    </rule> 
</rules> 

をそれで終わるかどうか、すべてのURLに一致しますa /とし、foo.comの前に何かを使用して、それをhttp://foo.com?barvalue={C:1}に書き換えます。ここで、{C:1}は、foo.comの前に入力された値です。

ユーザーがhttp://foo.com?barvalue={C:1}に直接アクセスしないようにするには、次のルールを使用します。


あなたweb.configファイルに次のルールを追加することでRewrite module for IISを使用することができます。

<rewrite> 
    <rules> 
     <rule name="Redirect to Subdomains" stopProcessing="true"> 
      <match url="^xyzPage.aspx$" /> 
      <conditions> 
       <add input="{QUERY_STRING}" pattern="^barvalue=(.+)$" /> 
      </conditions> 
      <action type="Redirect" url="http://{C:1}.{HTTP_HOST}" appendQueryString="false" /> 
     </rule> 
    </rules> 
</rewrite> 

URLは正確にxyzPage.aspx(何の前または後に)一致していないか調べ。
クエリ文字列にbarvalueパラメータ(およびこのパラメータのみ)が含まれていて、その値が空でないかどうかを確認します。
これらの2つの条件がOKの場合、Redirecthttp://barvalue.original.hostがトリガーされます。

あなたの質問にはRewriteを指定してください。実際にやりたいことがあれば、type="Redirect"type="Rewrite"に変更してください。

重要:あなたは別のドメインにRewriteに有効なプロキシモードでインストールApplication Request Routing moduleとセットアップが必要な場合があります。

+0

質問を更新しました。更新された質問を今すぐご覧ください。 –

+0

@MayankPathak「実際にサーバー上にサブドメインを作成せずに」と言うと、そのユーザーには何を見せたいのですか?サーバーはどのようなコンテンツをレンダリングするべきかを知っていますか? – cheesemacfly

+0

@nicolas ..私が欲しいのは、ページと商品が 'query string'によってページ上で異なることです。クエリ文字列に基づいてサブドメインを作成したい...サブドメインとしてURLを書き換えたいだけです.. –

関連する問題