iman_Delphi7
دوشنبه 01 مرداد 1403, 19:22 عصر
سلام خدمت همه دوستان عزیز.
یه سوال داشتم. یه سایت داریم که یک کنترلر داره به اسم Products. یک اکشن به اسم Index هم داره که یه ورودی id هم میگیره. ما سه نوع آدرس داریم :
اول فرض می کنیم یک محصول داریم به اسم My-Software و با شناسه(id) 5
www.domain.com/Products (http://www.domain.com/Products) که با فراخوانی این آدرس، کاربر لیست محصولات را مشاهده می کند.
www.domain.com/Products/My-Software (http://www.domain.com/Products/My-Software) که با فراخوانی این آدرس صفحه معرفی محصول My-Software نمایش داده می شود.
www.domain.com/Products/5 (http://www.domain.com/Products/5) که با فراخوانی این آدرس میخوام به لینک بالا ریدایرکت 302 بشه. (RedirectPermanent)
من تو فایل RouteConfig این کد رو اضافه کردم:
routes.MapRoute(
name: "Products",
url: "Products/{id}",
defaults: new { controller = "Products", action = "Index", id = UrlParameter.Optional }
);
اکشن Index هم به این صورت نوشته :
public ActionResult Index(string id)
{
if (string.IsNullOrEmpty(id))
{
var ProductList = repP.GetProductList();
return View(ProductList);
}
else
{
try
{
int pid = Convert.ToInt32(id);
var p = repP.GetProductByID(pid);
if (p != null)
return RedirectToActionPermanent("", "Products", new { id = p.prdxtraUrlTitle });
else
return RedirectToAction("");
}
catch (Exception)
{
var p = repP.GetProductByUrl(id);
if (p != null)
return View("Product", p);
else
return RedirectToAction("");
}
}
}
مشکل اینجاست که الان چون اکشن Index داریم این url ها رو هم داریم :
www.domain.com/Products/Index/My-Software
www.domain.com/Products/Index/1
و چون این url ها تو گوگل ایندکس میشه تو سئو به مشکل میخوریم. چون داپلیکیت محسوب میشه. دو تا آدرس با محتوای یکسان.
در واقع من می خوام فقط یک URL داشته باشم که اینه : www.domain.com/Products/My-Software (http://www.domain.com/Products/My-Software)
به همین دلیل اومدم توی action اینطوری نوشتم که اگر با لینکی که با id که عددی بود اومد، ریدایرکت کنه به لینک با اسم محصول. نمی دونم چرا تو URL نهایی اینو میاره : www.domain.com/Products/Index/My-Software
اصلا چطوری می تونم این Index رو ورش دارم؟ نمیخوام Index داشته باشم تو url ها.
ممنون میشم راهنماییم کنید. سپاس.
یه سوال داشتم. یه سایت داریم که یک کنترلر داره به اسم Products. یک اکشن به اسم Index هم داره که یه ورودی id هم میگیره. ما سه نوع آدرس داریم :
اول فرض می کنیم یک محصول داریم به اسم My-Software و با شناسه(id) 5
www.domain.com/Products (http://www.domain.com/Products) که با فراخوانی این آدرس، کاربر لیست محصولات را مشاهده می کند.
www.domain.com/Products/My-Software (http://www.domain.com/Products/My-Software) که با فراخوانی این آدرس صفحه معرفی محصول My-Software نمایش داده می شود.
www.domain.com/Products/5 (http://www.domain.com/Products/5) که با فراخوانی این آدرس میخوام به لینک بالا ریدایرکت 302 بشه. (RedirectPermanent)
من تو فایل RouteConfig این کد رو اضافه کردم:
routes.MapRoute(
name: "Products",
url: "Products/{id}",
defaults: new { controller = "Products", action = "Index", id = UrlParameter.Optional }
);
اکشن Index هم به این صورت نوشته :
public ActionResult Index(string id)
{
if (string.IsNullOrEmpty(id))
{
var ProductList = repP.GetProductList();
return View(ProductList);
}
else
{
try
{
int pid = Convert.ToInt32(id);
var p = repP.GetProductByID(pid);
if (p != null)
return RedirectToActionPermanent("", "Products", new { id = p.prdxtraUrlTitle });
else
return RedirectToAction("");
}
catch (Exception)
{
var p = repP.GetProductByUrl(id);
if (p != null)
return View("Product", p);
else
return RedirectToAction("");
}
}
}
مشکل اینجاست که الان چون اکشن Index داریم این url ها رو هم داریم :
www.domain.com/Products/Index/My-Software
www.domain.com/Products/Index/1
و چون این url ها تو گوگل ایندکس میشه تو سئو به مشکل میخوریم. چون داپلیکیت محسوب میشه. دو تا آدرس با محتوای یکسان.
در واقع من می خوام فقط یک URL داشته باشم که اینه : www.domain.com/Products/My-Software (http://www.domain.com/Products/My-Software)
به همین دلیل اومدم توی action اینطوری نوشتم که اگر با لینکی که با id که عددی بود اومد، ریدایرکت کنه به لینک با اسم محصول. نمی دونم چرا تو URL نهایی اینو میاره : www.domain.com/Products/Index/My-Software
اصلا چطوری می تونم این Index رو ورش دارم؟ نمیخوام Index داشته باشم تو url ها.
ممنون میشم راهنماییم کنید. سپاس.