代码之家  ›  专栏  ›  技术社区  ›  Matt Dawdy

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

  •  0
  • Matt Dawdy  · 技术社区  · 15 年前

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

    所以,有一个想法是,我们可以让测试人员用这样的URL打开站点,而不是子域: http://192.168.0.1/smith http://192.168.0.1/jones 然后我会将它们重定向到 http://192.168.0.1/default.aspx?site=smith 等。。。

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

    有人能告诉我我想做什么是可能的吗?如果可能的话,能告诉我一个指向某个代码或解释的指针吗?

    我相信我们使用的是ASP.NET 3.5和IIS6。

    谢谢你的帮助!

    4 回复  |  直到 15 年前
        1
  •  2
  •   JoshJordan    15 年前

    我写了一篇介绍 URL Rewriting in ASP.NET 在我的博客上,为了它的价值。您可以在这里发布更多的问题来澄清您的任何具体问题。

        2
  •  1
  •   Muhammad Akhtar    15 年前

    这在你的情况下肯定有效。 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
  •   John Boker    15 年前

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

    更多信息:

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

        4
  •  1
  •   fritzone    15 年前

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

    这使您的生活变得轻松,因为所有内容都保存在httpContext.currentContext.items[“”]

    我已经为几个项目修改了这段代码,其中我有一个XML配置文件。然后使用此文件生成 例行收集 . 这段代码也很容易扩展到处理301重定向的SEO。

    此方法也会在AppPool中加载一次,从而消除了对每次调用分析XML文件和配置的需要。迄今为止,这是我在性能方面的最佳解决方案。

    如果你需要帮助,请告诉我。我很乐意帮忙。

    编辑: 13/09/09

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

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

    到目前为止,这已经证明自己工作得相当好。 这还允许在应用程序运行时更改路由,而不需要停机时间。