5

私のeコマースウェブサイトで商品ページにアクセスしたときに使用したコードです。このビットでこのC#アクションメソッドコードは実際に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); 
    } 
} 

if (product.SeoTextSlug != slug) 
    return RedirectToAction("Details", new {id = product.ProductId, slug = product.SeoTextSlug}); 

私が実際に正しく301リダイレクトを発射するだろうか?

確かにそれが欲しいと思っていますが、検索エンジンが正しく応答するように正しい標準HTTP結果を返すようにしたいと思います。

+0

RedirectToActionPermanentながらRedirectToActionを返すと考えています。ネットワークに行き、HTTPリクエストを見てください。 – epignosisx

答えて

12

は、私はあなたがブラウザの開発者ツールを使用して、それを確認することができます302リターン301

+0

私が最後にしなければならないことは、代わりに 'RedirectToActionPermanent'を使用することです。 –

+0

@Sergio:はい。唯一の条件は、302の代わりに301を確実にしなければならないということです。 –

関連する問題