2009-09-11 59 views
0

我们有一个测试站点只能通过IP地址托管。我们确实需要测试一些功能,这取决于某人用于访问该网站的子域名。但是,我们当然甚至不能在只有IP的网站上使用子域名。网址重写,临时解决方案,ASP.Net 3.5

所以,我想过是不是子域,我们可以有测试人员打开该网站,像这样的URL:http://192.168.0.1/smithhttp://192.168.0.1/jones,我会再重定向到http://192.168.0.1/default.aspx?site=smith等等

我们测试人员在客户端,并要求他们输入查询字符串会有问题。另外,我真的很想介绍一下URL重写的快速介绍。

任何人都可以给我任何想法,如果我想要做什么是可能的,如果是这样,一个指向一些代码或解释什么的?

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

感谢您的帮助!

回答

2

我写了我的博客上介绍了​​,什么它的价值。请随时在此发布更多问题,以澄清您拥有的任何具体问题。

+1

这很好。开销也很少。 – 2009-09-12 04:24:33

1

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

更多信息这里:

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

+0

很好的答案,但不会在我们的情况下工作。我们不知道测试机器 - 他们中有将近100人排队在美国各地,并试图让他们全部更新主机文件,这真的会让我们的客户感到恼火。再次,好主意。 – 2009-09-11 02:58:00

+0

哇,我们的测试人员是我们的销售人员... – 2009-09-11 03:10:39

+0

:)好的测试人员在黄金价格上是值得的。 – 2009-09-12 04:25:57

1

这将definitly在你的情况下工作 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"/> 
1

这是净3.5的一部分,是MVC使用的 相同的机制

这使您的生活更轻松,因为一切都在HttpContext.CurrentContext.Items举行的事实[ “”]

我已经适应了这个代码为一些项目,我有一个XML配置文件。然后我使用这个文件来构建RouteCollection。此代码也很容易扩展到处理301重定向搜索引擎优化。

此方法在您的AppPool中也会加载一次,并且不需要为每个调用解析xml文件和配置。迄今为止,这一直是我明智表现的最佳解决方案。

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

编辑:13/09/09

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

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

到目前为止,这已证明自己工作得很好。 这也可以允许在应用程序运行时更改路线,而不会停机。

+0

你的例子很好用,但是当我将它插入到我的解决方案中时,它并没有打到我的MSO对象。我相信这是由于ASPNet会员服务。所有请求,如果尚未登录,则重定向到login.aspx。我认为这个处理程序在我之前运行,所以我没有机会处理它。 有什么建议吗?否则,我爱你的方法。很酷。 – 2009-09-12 03:05:35