Oto kod, którego używam, gdy ktoś odwiedza stronę produktu w mojej witrynie e-commerce.Czy ten kod metody działania C# rzeczywiście uruchamia przekierowanie 301?
public ActionResult Details(int id, string slug)
{
using (var productRepository = new EfProductRepository())
{
var product = productRepository.FindById(id);
if (product == null) return RedirectToAction("Index", "Home");
if (product.SeoTextSlug != slug)
return RedirectToAction("Details", new {id = product.ProductId, slug = product.SeoTextSlug});
var model = new ProductDetailModel();
//Load the product information.
model.Product.ProductId = product.ProductId;
model.Product.CoverImagePath = product.CoverImagePath;
model.Product.Name = product.Name;
model.Product.Tagline = product.Tagline;
model.Product.Price = product.Price;
model.Product.Stock = product.Stock;
model.Product.PieceCount = (int)product.PieceCount;
model.Product.SKU = product.SKU;
//Load the reviews for that product.
if (product.Reviews.Any())
{
foreach (var review in product.Reviews)
{
model.Reviews.Add(new ReviewModel()
{
ReviewId = review.ReviewId,
AccountId = (int)review.AccountId,
Content = review.Content,
Location = review.Location,
ProductId = (int)review.ProductId,
PublishDate = review.PublishDate,
ReviewRatingId = (int)review.ReviewRatingId
});
}
}
return View(model);
}
}
W tym kawałku:
if (product.SeoTextSlug != slug)
return RedirectToAction("Details", new {id = product.ProductId, slug = product.SeoTextSlug});
Am I rzeczywiście wypalania 301 przekierowanie prawidłowo?
Pewnie, że działa tak, jak chcę, ale chcę się upewnić, że zwracam prawidłowy standardowy wynik HTTP, więc wyszukiwarki odpowiednio na niego reagują.
można potwierdzić za pomocą narzędzi deweloper przeglądarce. Przejdź do sieci i zobacz żądania HTTP. – epignosisx