URL短縮サイトを作りたいです。私が提供する URLは、短い URL の値がexample.com/XXX
どこに
あるかのようなものです。XXX
ウェブサイトをオンにしたいのですexample.com
が、URL はexample.com/xxx
です。xxx
URL から取得し、ユーザーをデータベース内の同等の URL にリダイレクトしたいと考えています。
これをどのように実装できますか?
URL短縮サイトを作りたいです。私が提供する URLは、短い URL の値がexample.com/XXX
どこに
あるかのようなものです。XXX
ウェブサイトをオンにしたいのですexample.com
が、URL はexample.com/xxx
です。xxx
URL から取得し、ユーザーをデータベース内の同等の URL にリダイレクトしたいと考えています。
これをどのように実装できますか?
たとえば、RouteConfig に新しいルートを作成します。
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute("empty",
"{id}",
new {controller = "Home", action = "Index", id = UrlParameter.Optional}
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
そして、インデックスに渡されたIDを使用してデータベースに移動するだけです
public ActionResult Index(int id)
{
//Do Stuff with db
return View();
}
asp.net mvc のドキュメントはこちら。
デフォルトのコントローラーアクションで必要なリダイレクトを行う1つの方法。デフォルトでは、asp.net mvc では home/index です。
したがって、インデックスアクションでは、そのようなコードが必要です
public ActionResult Index(string id)
{
var url = Db.GetNeededUrl(id);
return Redirect(url);
}
したがって、ユーザーがそのようなアドレス site.com/NewYear を入力すると、データベースにある同等の URL にリダイレクトされます。