私は単純なURLの短縮文字をコーディングしています。RedirectPermanentがURLにリダイレクトしない
リダイレクト以外はすべて機能しています。
public async Task<ActionResult> Click(string segment)
{
string referer = Request.UrlReferrer != null ? Request.UrlReferrer.ToString() : string.Empty;
Stat stat = await this._urlManager.Click(segment, referer, Request.UserHostAddress);
return this.RedirectPermanent(stat.ShortUrl.LongUrl);
}
私が入力このhttp://localhost:41343/5d8a2aような短縮されたリンクは、それは私が代わりにwww.google.com.brのhttp://localhost:41343/www.google.com.brにリダイレクトします。ここでは
はリダイレクトしようとするコードです。EDIT
答えをチェックした後、それが動作します。ここにコードの最後のスニペットがあります。
if (!stat.ShortUrl.LongUrl.StartsWith("http://") && !stat.ShortUrl.LongUrl.StartsWith("https://"))
return this.RedirectPermanent("http://" + stat.ShortUrl.LongUrl);
else
return this.RedirectPermanent(stat.ShortUrl.LongUrl);
ありがとう!
そして、何 '返しLongUrl'んが、それを追加することができますか? –
@DovydasSopa longUrlは、www.google.com –
を返します.LongUrlにhttp://が含まれている場合は動作します。 URLにhttp://が含まれているかどうかを調べる代わりに、方法がありますか? –