2016-12-09 3 views
0

나는 각도를 사용하여 SPA를 사용합니다 (각도가 너무있는 라우팅). 이전 URL을 가로 채고 새 URL로 리디렉션하는 HTTP 처리기를 작성했습니다.Http 처리기 .html 및 .aspx를 가로 채지 않습니다.

경로를 * 타격을 주지만 * .html로 처리기를 때리지 않습니다. 코드 스니핑을 찾아보십시오.

내 처리기

을 코드 -
public class PageHandler : IHttpHandler 
    { 
    public void ProcessRequest(HttpContext context) 
     { 
      HttpRequest request = context.Request; 
      HttpResponse response = context.Response; 
      string newUrl=string.Empty; 
      if (Convert.ToString(request.Path) != null) 
       newUrl = GetNewURL(Convert.ToString(request.Path)); 
      if (newUrl != string.Empty) 
       response.Redirect(newUrl); 
      else 
       response.Redirect("/404"); 
     } 
} 

Webconfig 설정 -

<handlers> 
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> 
      <remove name="OPTIONSVerbHandler" /> 
      <remove name="TRACEVerbHandler" /> 
      <add verb="*" path="*.html,*.aspx" name="myHandler" type="LucidFox.Helpers.PageHandler"/> 
</handlers> 

의 차단하지 .ASPX 및

답변

0

IIS 7의 핸들러 매핑을 .html 파일이 IIS 6의 핸들러와 다른 이유는 확실하지 맵핑. IIS 6에서는 web.config에서 핸들러를 매핑 할 수 있습니다. 여러 경로 (쉼표로 구분)를 사용할 수 있습니다.

<handlers> 
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> 
      <remove name="OPTIONSVerbHandler" /> 
      <remove name="TRACEVerbHandler" /> 
      <add verb="*" path="*.html,*.aspx" name="myHandler" type="LucidFox.Helpers.PageHandler"/> 
</handlers> 

IIS 7에서는 여러 경로를 지원하지 않는 다른 section.It에, 그래서 당신은 각 경로에 대한 처리기를 매핑해야합니다.

<handlers> 
    <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> 
    <remove name="OPTIONSVerbHandler" /> 
    <remove name="TRACEVerbHandler" /> 
    <add verb="*" path="*.html" name="myHandler" type="LucidFox.Helpers.PageHandler"/> 
    <add verb="*" path="*.aspx" name="myHandler" type="LucidFox.Helpers.PageHandler"/> 
</handlers>