我们运营的网站允许用户注册自己的网址,并将我们的网站重定向到他们的用户帐户。让它类似于Blogspot.com,用户可以在其中拥有自己的URL。
问题是,为了做到这一点,我们需要有静态IP地址才能使DNS重定向工作。我们可以轻松地从大多数托管公司获得静态IP地址,但如果我们更改我们的托管公司,则意味着我们必须强制所有用户将其DNS设置更改为我们的新IP地址。这非常有问题。
有没有办法拥有我们自己的IP地址,我们可以随身携带到我们决定使用的托管公司?或者还有其他更简单的解决方案吗?
答案 0 :(得分:7)
这可以使用DNS修复。创建一条DNS“A”记录,将“your-site.com”指向您当前的IP地址。然后当所有用户注册他们自己的URL时,他们需要设置指向“your-site.com”的“CNAME”记录,而不是让他们设置“A”记录。如果您的IP将来发生变化,您只需更改“your-site.com”的“A”记录,然后所有其他DNS条目将自动更新。
答案 1 :(得分:2)
我永远不会创建CNAME,这有点奇怪而且不可扩展(还有一件事要做)......
只需在名为*.yourdomain.com
正常的做法是为此创建一个新域,例如*.yourdomainaccount.com
并使用下面的示例,大量已知的Web服务使用此技术。
然后在您的默认文件或web.config或您的站点配置的任何文件中,创建一个获取域的简单方法,例如服务器变量SERVER_NAME
然后将用户重定向到自己的帐户。
在C#中
string server = Request.ServerVariables["SERVER_NAME"];
if ( server.Contains("www.") || server.Contains("blog.") )
{
// redirect the user to your main site or blog respectively
}
else
{
string user = server.Replace("http://","").split(".")[0];
Response.Redirect(String.Format("www.domain.com/users/{0}", user));
}
答案 2 :(得分:1)
这就是为什么域名是有用的抽象。只要域注册到新地址,IP就可以更改。做一些关于动态DNS的研究。你会喜欢你会看到的。