1

お客様から、こうしてほしいとのご依頼がありました。Web 上のユーザーがhttp://xxxxにアクセスすると、ドメイン名http://www.domain.comに 301 リダイレクトされます。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

ちょっと難しいですが、IIS でこれを構成する代わりに、クライアントにヘッダー ファイル (header.asp ファイル、site.master など) にコードを追加することをお勧めします。このコードはリクエストをチェックできます。に到達できます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 に答える