1

我有一个客户的请求,他们希望我能做到这一点。当网络上的用户访问http://xxxx时,将其 301 重定向到他们的域名http://www.domain.com。我在 URL Rewrite 中弄乱了规则,我没有问题指定条件来确定对 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
%>

感谢所有的建议!克里斯

4

1 回答 1

0

这有点棘手,但我建议您的客户端在其头文件(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);
}

希望这可以帮助。

于 2013-04-04T07:04:41.970 回答