将IIS 7 IP的URL重写为域名

将IIS 7 IP的URL重写为域名,iis,Iis,我接到一位客户的请求,他们希望我能做到这一点。当网络上的用户去让它301重定向到他们的域名时。我在URL重写中弄乱了规则,我没有问题指定确定IP地址请求的条件,等等。但是当我重定向时,站点进入重定向循环 我的问题是我该怎么做?我知道这基本上是重定向到同一个地方,因此循环,但有任何方法使这发生吗?出于SEO的原因,他们不希望网站的访问者能够通过公共IP获得它 谢谢, 克里斯 ////// 好吧,多亏了Caner的一些指导和好主意,我才能够找到答案。 以下是我使用的ASP代码: <% if R

我接到一位客户的请求,他们希望我能做到这一点。当网络上的用户去让它301重定向到他们的域名时。我在URL重写中弄乱了规则,我没有问题指定确定IP地址请求的条件,等等。但是当我重定向时,站点进入重定向循环

我的问题是我该怎么做?我知道这基本上是重定向到同一个地方,因此循环,但有任何方法使这发生吗?出于SEO的原因,他们不希望网站的访问者能够通过公共IP获得它

谢谢, 克里斯 //////

好吧,多亏了Caner的一些指导和好主意,我才能够找到答案。 以下是我使用的ASP代码:

<%
if Request.ServerVariables("HTTP_X_HOST") = "" then
Dim rd
rd = "http://www.xxx.com" & Request.ServerVariables("PATH_INFO")
Response.Status="301 Moved Permanently"
Response.AddHeader "Location",rd
Response.end 
end if
%>

感谢所有的建议!
Chris

这有点棘手,但我建议您的客户端在头文件(header.asp文件、site.master等)中添加一些代码,而不是在IIS上配置它; 此代码可以检查请求;您可以访问
HttpContext.Current.Request.Url.Host
。 使用
HttpContext.Current.Request.Url.Host
,可以执行重定向

 string currentURL = HttpContext.Current.Request.Url.Host;

if(!currentURL.StartsWith("www."))
{
    string newURL = HttpContext.Current.Request.Url.Host;
    if(currentURL =="www.x.x.x.x")
      newURL ="www.domain.com";

    newURL += HttpContext.Current.Request.Url.PathAndQuery;

    Response.Redirect(newURL);
}

希望这有帮助。

我不太了解IIS,但应该可以创建虚拟服务器。您可以为IP地址创建一个(只进行重写),为真实网站创建一个(包含实际内容)。希望这能给我们一些有用的提示…你能告诉我们你尝试过的重定向规则吗?我可以,但我不知道IIS是否只允许我将主机头绑定到没有IP的VS。我去看看。Cheese,我将尝试重新挖掘并发布它,但我在尝试后删除了它。我假设它是一个asp.net应用程序。谢谢Caner。我试过这个。我不得不重新编写它作为一个ASP的经典应用程序。但是我得到了与IIS URL重写规则相同的东西,只是进入了一个重定向循环。在重定向之前放置一个if控件怎么样,我已经编辑了我的原始答案。