SEO Friendly Url

Bài dưới đây hướng dẫn chúng ta cách rewrite Url để tối ưu hóa SEO cho website

  • Bước 1: Tạo project mới, add Model (ví dụ demo này sử dụng cơ sở dữ liệu Northwind vì tính đơn giản và sẵn có của cơ sở dữ liệu)
  • Bước 2: Tạo ProductsController, chọn loại MVC 5 Controller with views, using Entity Framework để tự động sinh views cho các action methods của Controller
  • Cấu hình RouteConfig như sau

public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute(“{resource}.axd/{*pathInfo}”);

//Bổ sung route mới, ở trước default route
routes.MapRoute(

name: “Products”,
url: “{Products}/{action}/{id}/{productName}”,
defaults: new { controller = “Products”, action = “Index”, id = UrlParameter.Optional, productName=UrlParameter.Optional }
);

routes.MapRoute(
name: “Default”,
url: “{controller}/{action}/{id}”,
defaults: new { controller = “Home”, action = “Index”, id = UrlParameter.Optional }
);
}

  • Định nghĩa Extend method cho class String

public static class StringHelpers
{
public static string ToSeoUrl(this string url)
{
// make the url lowercase
string encodedUrl = (url ?? “”).ToLower();

// replace & with and
encodedUrl = Regex.Replace(encodedUrl, @”\&+”, “and”);

// remove characters
encodedUrl = encodedUrl.Replace(“‘”, “”);

// remove invalid characters
encodedUrl = Regex.Replace(encodedUrl, @”[^a-z0-9]”, “-“);

// remove duplicates
encodedUrl = Regex.Replace(encodedUrl, @”-+”, “-“);

// trim leading & trailing characters
encodedUrl = encodedUrl.Trim(‘-‘);

return encodedUrl;
}
}

  • Sửa lại code cho Details action của Products controller

// GET: Products/Details/5
public ActionResult Details(int? id, string productName)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Product product = db.Products.Find(id);

return View(product);
}

  • Sửa lại ActionLink trong index.cshtml để liên kết hiển thị tên sản phẩm

@Html.ActionLink(“Details”, “Details”, new { id = item.ProductID, productName = item.ProductName.ToSeoUrl() })

  • Kết quả của Url rewrite như trong hình sau

url-seo

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s