URL重写,临时解决方案,ASP.Net 3.5

时间:2009-09-11 02:51:58

标签: c# asp.net url-rewriting

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

所以,有人认为我不是子域名,我们可以让测试人员使用这样的网址打开网站:http://192.168.0.1/smithhttp://192.168.0.1/jones然后我会将它们重定向到{{3等等......

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

任何人都可以告诉我,如果我想做什么是可能的,如果是的话,指向某些代码或解释的东西?

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

感谢您的帮助!

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

此处提供更多信息:

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

答案 2 :(得分:1)

这肯定会在你的情况下起作用 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"/>

答案 3 :(得分:1)

  

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

由于所有内容都保存在HttpContext.CurrentContext.Items [“”]

中,这使您的生活变得轻松

我已经为一些项目调整了这个代码,我有一个XML配置文件。然后我使用此文件来构建 RouteCollection 。此代码也很容易扩展到处理SEO重定向301。

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

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

修改: 13/09/09

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

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

到目前为止,这已证明自己可以很好地运作。 这也可以允许在应用程序运行时更改路由,没有停机时间。