我们有一个仅由IP地址托管的测试网站。我们确实需要测试一些功能,这些功能取决于某人使用哪个子域来访问该站点。但是,我们当然甚至不能使用仅限IP的网站使用子域名。
所以,有人认为我不是子域名,我们可以让测试人员使用这样的网址打开网站:http://192.168.0.1/smith或http://192.168.0.1/jones然后我会将它们重定向到{{3等等......
我们的测试人员在客户端,并要求他们输入查询字符串会有问题。另外,我非常想快速了解URL重写。
任何人都可以告诉我,如果我想做什么是可能的,如果是的话,指向某些代码或解释的东西?
我相信我们正在使用asp.net 3.5和iis6。
感谢您的帮助!
答案 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&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更新时加载。
到目前为止,这已证明自己可以很好地运作。 这也可以允许在应用程序运行时更改路由,没有停机时间。