2013-02-14 2 views
1

이것은 아마도 중복되었지만이 간단한 질문에 대한 답변을 찾을 수 없기 때문에 Google-foo가 꺼져 있거나 뭔가 있습니다.존재하지 않는 .html 파일을 mvc3 경로로 리디렉션하는 방법은 무엇입니까?

IIS7.5에서 이전 사이트를 MVC3으로 옮겼습니다. 이전 .html 확장 URL을 새 MVC 컨트롤러 작업으로 리디렉션해야합니다.

URL 매핑을 추가했습니다.

<urlMappings> 
    <!-- Doesn't work --> 
    <add url="~/OldUrl.html" mappedUrl="~/NewController"/> 
    <!-- Works but is rewrite instead of redirect --> 
    <add url="~/OldUrl.aspx" mappedUrl="~/NewController"/> 
</urlMappings> 

위의 두 가지 이유로 작동하지 않습니다. 첫째, .html 확장명이 다시 매핑되지 않고 두 번째로 .aspx 확장명이 다시 작성되지 않고 다시 매핑됩니다.

.NET에서 .HTML 확장이 무시되고 있다고 생각했기 때문에 StaticFileHandler를 추가하려고했지만 실제로 처리기가 이미있었습니다.

공유 관리 중이기 때문에 IIS 관리 도구에 액세스 할 수 없지만 web.config에 무언가를 추가하여 리디렉션하도록 할 수 있어야합니다.

답변

0

마지막으로 그것을 알아 냈 :

<system.webServer> 
    <!-- The RewriteModule may need to be added if it isn't 
     already included in machine.config or application.config 
    <modules> 
     <add name="RewriteModule" /> 
    </modules> 
    --> 
    <rewrite> 
     <rules> 
      <rule name="Redirect1"> 
       <match url="^OldUrl.html$" /> 
       <action type="Redirect" 
         url="/NewController" 
         redirectType="Permanent" /> 
      </rule> 
      <rule name="Redirect2"> 
       <match url="^OldUrl.aspx$" /> 
       <action type="Redirect" 
         url="/NewController" 
         redirectType="Permanent" /> 
      </rule> 
     </rules> 
    </rewrite> 
</system.webServer> 
관련 문제