![](/img/trans.png)
[英]Can we create subdomain URLs without actually creating a subdomain in asp.net?
[英]How to rewrite URL as subdomain in asp.net without actually creating a subdomain on server
我希望這不是我第一次在SO上提出這個問題。
我在我的網站上有URL,並且使用query string
值例如: http : //foo.com/xyzPage.aspx?barvalue = yehaa
至
請建議如何在不在服務器上實際創建子域的情況下完成它。
我在服務器機器上安裝了IIS 7.5並使用了Asp.net 4.0 。
非常感謝
編輯遵循我們的意見:
要使用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結尾或不使用/
並在foo.com
之前使用某些東西,然后將其重寫為http://foo.com?barvalue={C:1}
其中{C:1}
是在foo.com
之前輸入的任何值foo.com
。
如果您想阻止人們直接訪問http://foo.com?barvalue={C:1}
,您可以使用以下規則。
您可以通過在web.config
文件中添加以下規則來使用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
完全xyzPage.aspx
(之前或之后沒有任何內容)。
它檢查查詢字符串是否包含barvalue
參數(並且只包含此參數)以及它的值是否為空。
如果這兩個條件沒問題,它會觸發Redirect
到http://barvalue.original.host
。
您的問題指定了Rewrite
,因此如果您真的想要這樣做,請將操作type="Redirect"
更改為type="Rewrite"
。
重要提示 :您可能需要安裝應用程序請求路由模塊 ,並在啟用代理模式的情況下進行設置以Rewrite
到其他域。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.