我在 asp.net 中开发了一个网站并托管在 Windows 服务器上,它没有为我提供子域名的通配符条目。我怎样才能写我的网址,例如 http://subdomainName.DomainName.org?
我想将带有子域的 url 重定向到主域;所以url“subdomainName.DomainName.org”应该重定向到“DomainName.org”,我的子域名不固定。子域将分配给每个用户。
我怎样才能做到这一点?
我在 asp.net 中开发了一个网站并托管在 Windows 服务器上,它没有为我提供子域名的通配符条目。我怎样才能写我的网址,例如 http://subdomainName.DomainName.org?
我想将带有子域的 url 重定向到主域;所以url“subdomainName.DomainName.org”应该重定向到“DomainName.org”,我的子域名不固定。子域将分配给每个用户。
我怎样才能做到这一点?
它subdomain
是 DNS 服务器的一部分,与 IIS 设置一起工作。
因此,您不能从 asp.net 更改 DNS 设置,也不能更改 IIS 设置。当提供商允许您添加额外的子域时,实际上所做的是在 DNS 条目上创建新条目,然后将映射添加到 IIS,以便子域查看您的站点。如果您的提供商没有为您提供添加子域的工具,您也可以编辑 DNS 条目,然后您不能从 asp.net 添加它们。
Application_BeginRequest
如果您可以添加子域,那么您可以使用redirect
或 重写路径来操作您要在服务器上显示的内容并在 global.asax 上显示。例如:
protected void Application_BeginRequest(Object sender, EventArgs e)
{
var SubDomain = GetSubDomain(HttpContext.Current.Request.Url.Host);
if(!String.IsNullOrEmpty(SubDomain) && SubDomain != "www")
{
Response.Redirect("www.yourdomain.com", true);
return;
}
}
// from : http://madskristensen.net/post/Retrieve-the-subdomain-from-a-URL-in-C.aspx
private static string GetSubDomain(Uri url)
{
string host = url.Host;
if (host.Split('.').Length > 1)
{
int index = host.IndexOf(".");
return host.Substring(0, index);
}
return null;
}
类似的帖子:
如何将所有对特定域的请求重新映射到 ASP.NET 中的子目录
将网页请求重定向到默认子文件夹
如何在不硬编码其名称的情况下引用主域?
从 C# 中的 URL 检索子域