我希望这不是我第一次问这个问题的SO。
我在我的网站和网址,使用query string
值,例如: http://foo.com/xyzPage.aspx?barvalue=yehaa
至
http://yehaa.foo.com/
请建议怎么能不上服务器实际上创建子域来完成..
我已经安装了IIS服务器计算机,并使用Asp.net 4.0 7.5。
非常感谢
我希望这不是我第一次问这个问题的SO。
我在我的网站和网址,使用query string
值,例如: http://foo.com/xyzPage.aspx?barvalue=yehaa
至
http://yehaa.foo.com/
请建议怎么能不上服务器实际上创建子域来完成..
我已经安装了IIS服务器计算机,并使用Asp.net 4.0 7.5。
非常感谢
编辑下面我们的看法:
要访问http://foo.com/xyzPage.aspx?barvalue=yehaa
使用http://yehaa.foo.com/
,你必须使用以下规则:
<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
。
如果你想阻止人们直接访问到http://foo.com?barvalue={C:1}
您可以使用下面的规则。
你可以使用IIS的重写模块通过增加在下面的规则web.config
文件:
<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>
它检查的网址完全一致xyzPage.aspx
(没有之前或之后)。
它检查如果查询字符串包含barvalue
参数(只有这一个),如果其值不为空。
如果这些2个条件都ok,它触发Redirect
到http://barvalue.original.host
。
你的问题指定Rewrite
,所以如果这真的是你想要做什么,更改操作type="Redirect"
到type="Rewrite"
。
重要提示 :您可能需要在应用程序请求路由模块安装和设置启用到代理模式Rewrite
到不同的域。