2012-01-29 3 views
0

간단한 응용 프로그램, 일종의 포트폴리오를 만듭니다. Google에서 색인을 생성 할 때 SEO 결과가 좋을수록 링크에 * .html 접미사가있는 것이 더 좋다고 들었습니다 ...ASP.NET MVC 3 URL 다시 작성 - 링크에 * .html 접미사 추가

어쨌든 기본 라우팅/수정 URL을 수정하는 방법이 있습니까? 내 링크는 다음과 같이 (나는 그들이 내 방문자 읽을 수 폴란드어 단어를 사용하고 있습니다) 것을 :

domain.pl/index.html 
domain.pl/kontakt.html 
domain.pl/oferta.html 
domain.pl/sklepy.html 

을 그리고이 링크가 하나의 컨트롤러로 번역된다 (같은 HomeController을),하지만 {0} {0} .html 링크의 액션 이름으로 사용됩니까? 또는 더 나은, 내가 좋아하는 영어 조치 이름에 URL에서 {0}지도 싶습니다 : 더 나은 SEO 결과에 대한

index.html = index action 
kontakt.html = contact action 
oferta.html = offer action 
sklepy.html = shops action 

답변

1

번역 및 접미사 모두에 대해 AttributeRouting을 사용해보세요. 이 패키지가 설치된 , 당신은 당신의 Global.asax에 경로를 구성 할 필요가 없습니다 및 컨트롤러는 다음과 같이 될 것입니다 :

그런데
[GET("index.html")] 
public ActionResult Index() 
{ 
    return View(); 
} 

[GET("/any/url/path/kontakt.html")] 
public ActionResult Contact() 
{ 
    return View(); 
} 

[GET("oferta.html")] 
public ActionResult Offer() 
{ 
    return View(); 
} 

, 각 속성에 중복 들이게 제거하려면 GETAttribute를 확장하고 .html을 추가하는 고유 한 속성을 만들 수 있습니다. 구성 할 페이지가 많은 경우 유용합니다.

8

확실하지,하지만 접미사를 추가하면 그냥 추가

 routes.MapRoute(
      "Default", 
      "{action}.html", 
      new { controller = "Home", action = "Index" } 
     ); 

로 간단합니다. html 접미사를 작업 매개 변수 자리 표시 자로 변환합니다.

번역를 들어, 결합 위의 두 코드로 ActionNameAttribute

[ActionName("kontakt")] 
    public ActionResult Contact() 
    { 
     return View(); 
    } 

를 사용할 수 있습니다, 당신은 Home/Contact 행동에 매핑 domain.pl/kontakt.html를 얻을.