![](/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.