関数を使用するredirect
場合、はい、その中にこの呼び出しがあります
url = UrlEncodeRedirect(url);
それはキリル文字、ギリシャ文字、そしておそらく他の文字を壊します。私がよく覚えていれば (この問題は数か月前の私の経験からのものなので覚えていると言いました)、文字の区切りは?
記号の後にあります。いずれにせよ、私は同じ問題を抱えています。
可能な解決策:
- オリジナルのリダイレクトほど良くないかもしれませんが、この問題を回避できます。
- リダイレクト ロジックに代わる方法を見つけてください。
- リダイレクトによって変更されない有効な URL 文字のみを使用するカスタム テキスト エンコードを作成し、再度デコードして戻します。そのマイナス点は、それが隠しテキストのようになり、目に見えない読み取り可能な検索ワードになることです.
これはリダイレクトの非常に基本的なものです。
public static void RedirectSimple(string url, bool endResponse)
{
HttpResponse MyResponse = HttpContext.Current.Response;
MyResponse.Clear();
MyResponse.TrySkipIisCustomErrors = true;
MyResponse.StatusCode = 302;
MyResponse.Status = "302 Temporarily Moved";
MyResponse.RedirectLocation = url;
MyResponse.Write("<html><head><title>Object moved</title></head><body>\r\n");
MyResponse.Write("<h2>Object moved to <a href=\"" + url + "\">here</a>.</h2>\r\n");
MyResponse.Write("</body></html>\r\n");
if (endResponse){
MyResponse.End();
}
}
これを関数にして、正しく動作するかどうかを試すことができます。