解析localhost上的子域

时间:2011-07-19 17:48:45

标签: c# debugging asp.net-mvc-3 subdomain

设置

我正在使用ASP.NET MVC3构建应用程序,该应用程序使用子域,我在我的主机文件中添加了以下内容:127.0.0.1 students.localhost

这一切似乎都很好,当我调试时,浏览器打开localhost:{PORT},我可以浏览网站,我也可以打开:students.localhost:{PORT},网站运行正常。

如果您想知道,我使用了Maarten Balliauw's代码来实现MVC和子域中的路由要求

问题

我需要以某种方式找出用户从哪个子域访问该网站。如果我调试,我的并转到我的子域:http://students.localhost:{PORT} Request.Url是:http://localhost:{PORT},由于某种原因,deubugger(或ASP.NET Development Server)没有获取students

请不要进入TLD震荡尝试解释子域名究竟是什么,我需要的只是http://之后的第一个字符串。在本地和生产中,这将是我的子域名。

提前完成


更新: 我设法通过使用:Request.Headers["host"]得到了预期的结果,找出为什么Request.Url不包含students子字符串会很有趣。

2 个答案:

答案 0 :(得分:2)

执行此操作的简便方法是在主机中放置完全限定的域名。如果生产站点是subdomain.domain.com,我想使用subdomain.domain.local并将其映射到127.0.0.1。

答案 1 :(得分:0)

new System.Uri(Request.RawUrl).Host

我认为这将是真正的主机名。