我们有一个仅由 IP 地址托管的测试站点。我们确实需要测试一些功能,这些功能取决于某人访问该网站所使用的子域。但当然,我们甚至不能在纯 IP 站点上使用子域。

因此,我的一个想法是,我们可以让测试人员使用如下 URL 打开网站,而不是使用子域: http://192.168.0.1/史密斯 或者 http://192.168.0.1/琼斯 然后我会将它们重定向到 http://192.168.0.1/default.aspx?site=smith ETC...

我们的测试人员在客户端,要求他们输入查询字符串将会出现问题。另外,我真的很想快速了解 URL 重写。

谁能给我任何想法,如果我想做的事情是可能的,如果是的话,指向一些代码或解释或其他东西的指针?

我相信我们正在使用 asp.net 3.5 和 iis6。

谢谢你的帮助!

有帮助吗?

解决方案

我写了一篇关于 URL重写的介绍我的博客上的ASP.NET ,它的价值。请随时在此处发布更多问题,以澄清您遇到的任何具体问题。

其他提示

这肯定会适用于您的情况 http://www.urlrewriting.net/149/en/home.html

我们已经实现了你所需要的,它的开源dll,你需要在web.config中编写一些规则,根据你的scanario,你的规则类似

<add name="index" virtualUrl="^~/(.*)/Default.aspx" rewriteUrlParameter="ExcludeFromClientQueryString" destinationUrl="~/Default.aspx?site=$1&amp;urw=t" ignoreCase="true"/>

您可以将测试计算机上的主机文件更改为指向该IP的域(和子域),这样您就不必依赖DNS,并且可以像分配域一样进行测试。

此处提供更多信息:

http://labnol.blogspot.com /2004/10/tweak-your-windows-hosts-file.html

这是 .Net 3.5 的一部分,也是 与 MVC 使用的机制相同

这使您的生活变得轻松,因为所有内容都保存在 HttpContext.CurrentContext.Items[""] 中

我已针对一些有 XML 配置文件的项目改编了此代码。然后我使用这个文件来构建 路由集合. 。此代码还可以轻松扩展以处理 SEO 的 301 重定向。

此方法也会在您的 AppPool 中加载一次,并且无需为每次调用解析 xml 文件和配置。到目前为止,这对我来说是性能方面的最佳解决方案。

如果您需要任何帮助,请告诉我。我很乐意伸出援手。

编辑 : 13/09/09

我还没有遇到这个问题,因为我通常在每个页面中处理成员资格/身份验证验证。我通常在页面上调用一个控件或方法来验证/授权用户。我的客户很少使用 ASP.Net 会员资格,他们通常依赖于我们需要连接的专有子系统。

我扩展了上述链接中提供的示例,以便我可以编写一个 xml 路由表,该路由表在应用程序启动或强制 RouteCollection 更新时加载。

到目前为止,这已经证明效果很好。这还可以允许在应用程序运行时更改路由,而无需停机。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top