asp.net에서 동적 페이지 파일 이름을 달성하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/462532

  •  19-08-2019
  •  | 
  •  

문제

내 웹 사이트에서 동적 컨텐츠에 대한 검색 엔진에서 최적화 된 링크를 만들고 싶습니다 (쿼리 스트링을 통해 데이터를 찾는 대신). 그래서:

mysite/SomeModifiableNname.aspx
대신에

mysite/DynamicContent.aspx?entryID=2345
.

요청을 리디렉션하는 스마트 404 핸들러 또는 IIS의 사용자 정의 MIME 유형 핸들러 외에도 ASP.NET에 좋은 솔루션이 있습니까?
페이지 파일 이름을 런타임에 변경할 수 있어야합니다.

도움이 되었습니까?

해결책 4

모두의 생각에 감사드립니다. 제공된 정보를 사용하면 필요한 솔루션을 발견했습니다.

Global.asax (또는 HTTPModule을 통해)에서 BeginRequest 이벤트를 듣고 컨텍스트를 적용하십시오.

void Application_BeginRequest(object sender, EventArgs e)
{
    string fullOrigionalpath = Request.Url.ToString();

    if (fullOrigionalpath.ToLower().Contains("/Games".ToLower()))
    {
        Context.RewritePath("Default.aspx?id=Games");
    }

}

그런 다음 이러한 요청을 처리 할 페이지의 onpreinit 방법에서 Postbacks가 적절하게 작동하도록 다시 적용해야합니다.

protected override void OnPreInit(EventArgs e)
{
    base.OnPreInit(e);

    if (Request.QueryString["id"] == null)
        return;
    if (Request.QueryString["id"].ToLower().Equals("games"))
        Context.RewritePath("Games", "", "id=Games");
}

이 작동이 내가 만난 많은 URL에 대한 리팅 모듈보다 더 나은 핵심은 경로가 역동적 일 수 있다는 것입니다. 즉, 생성 된 URL은 데이터 중심 일 수 있습니다.

다른 팁

당신은 a를 사용할 수 있습니다 httphandler, 본 것처럼 여기.

이것은 일반적으로 URL 재 작성이라고하는 광범위한 주제입니다 ...

이것을 달성하는 방법에는 여러 가지가 있습니다. IIS 재 작성 모듈을 살펴 보는 것이 좋습니다.

아마도 MVC 용으로 개발되었으며 ASP.NET 3.51에서 사용할 수있는 URL 라우팅 용량도 조사해야합니다.

업데이트 : 나는 당신의 의도에 대해 더 많이 알고 있기를 바랍니다. 그 마지막 문장은 나를 혼란스럽게합니다.

과거에 urlrewrite.net과 함께이 작업을 수행했습니다. IIS7에는이를위한 내장 시설도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top