【问题标题】:Redirect url to fully qualified name asp.net将 url 重定向到完全限定名称 asp.net
【发布时间】:2014-05-04 19:04:40
【问题描述】:
我的公司有一个网站,可以通过在地址栏中键入例如:foo 来访问。该网站以foo/directoryOfWebsite/Welcome.aspx 打开。
我想将其设置为加载foo.companyServername.com/directoryOfWebsite/Welcome.aspx。我应该在哪个配置文件中进行哪些设置以将短名称扩展为完全限定域名?
我想这样做是为了避免在尝试使用同一公司其他团队创建的 ui 工具时出现跨域错误。
我是 C# 和 ASP .net 的新手。所以我请你用简单的术语解释一下,以便我可以理解。我知道这可以通过配置 IIS 和 URL 重写来实现。但我正在寻找可以在没有这一切的情况下完成的事情。
【问题讨论】:
标签:
c#
asp.net
.net
url
redirect
【解决方案1】:
如果我没听错的话,你需要在你的 web 服务器上构建 foo 域并相应地设置 IIS。
【解决方案2】:
我一直在寻找一种无需在 IIS 端配置任何东西即可重定向到另一个 URL 的方法,因为这些东西是由另一个负责 Windows 基础架构和东西的团队控制的,并且可能需要更长的时间才能完成。
这样做的快速方法是修改Website.Master.cs 文件的Page_Load 方法。
在下面粘贴一个 sn-p:
protected void Page_Load(object sender, EventArgs e)
{
string domain = Request.Url.AbsoluteUri;
var filePath = Request.Url.PathAndQuery;
const string altDomainSuffix = "company.com";
bool redirect = false;
if (domain.ToLower().Contains("localhost"))
{
domain = System.Net.Dns.GetHostName().ToLower() + ".pc." + altDomainSuffix;
redirect = true;
}
if (!domain.ToLower().Contains(altDomainSuffix))
{
domain = Request.Url.Host + ".prod." + altDomainSuffix;
redirect = true;
}
if (redirect)
{
var altUrl = new UriBuilder(Request.Url.Scheme, domain + filePath);
Response.Redirect(altUrl.ToString());
}
...
//other code goes here
...
}