gpt4 book ai didi

asp.net - 如何在asp.net中将URL重写为子域,而无需在服务器上实际创建子域

转载 作者:行者123 更新时间:2023-12-04 13:40:59 29 4
gpt4 key购买 nike

我希望这不是我第一次在 SO 上问这个问题。

我在我的网站中有 URL 并且正在使用 query string值(value)观
例如: http://foo.com/xyzPage.aspx?barvalue=yehaa



http://yehaa.foo.com/

请建议如何实现 无需在服务器上实际创建子域 ..

我已经 IIS 7.5 安装在服务器机器上并使用 Asp.net 4.0 .

非常感谢

最佳答案

编辑 按照我们的意见:

访问 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} ,您可以使用以下规则。

您可以使用 Rewrite module for 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>

它检查 url 是否完全匹配 xyzPage.aspx (之前或之后都没有)。
它检查查询字符串是否包含 barvalue参数(只有这个),如果它的值不为空。
如果这两个条件没问题,它会触发 Redirecthttp://barvalue.original.host .

您的问题指定 Rewrite ,所以如果这真的是你想要做的,改变 Action type="Redirect"type="Rewrite" .

重要 : 您可能需要 Application Request Routing module在启用代理模式的情况下安装和设置 Rewrite到不同的域。

关于asp.net - 如何在asp.net中将URL重写为子域,而无需在服务器上实际创建子域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15248094/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com