2013-01-11 8 views
3

"rewritemaps.config"라는 별도의 구성 파일을 사용하려고합니다.이 파일에는 리디렉션 할 URL이 들어 있습니다. 파일은 루트 디렉토리 (web.config와 동일한 위치)에 있습니다. 내가 가지고있는 Redirects.config 파일의 형식은 다음과 같습니다IIS7에서지도 다시 작성 - 리디렉션되지 않음

내 web.config 파일에서
<rewriteMaps> 
    <rewriteMap name="Redirects"> 
     <add key="aspx/drvmain.aspx" 
      value="http://www.newdomain.com/folder2/page2.aspx" /> 
     <add key="aspx/jobs_AboutUs.aspx" 
      value="http://www.newdomain.com/folder1/jobs.aspx" /> 
     <add key="aspx/page.aspx" 
      value="http://www.newdomain.com/folder1/page2.aspx" /> 
    </rewriteMap> 
</rewriteMaps> 

, 내가 가진 : 네,이 URL을 설치는 IIS 관리자에서

<system.webServer> 
    <rewrite> 
     <rewriteMaps configSource="rewritemaps.config" /> 
      <rules> 
       <rule name="Redirect rules"> 
        <match url=".*" /> 
        <conditions> 
         <add input="{Redirects:{REQUEST_URI}}" pattern="(.+)" /> 
        </conditions> 
        <action type="Redirect" redirectType="Permanent" 
          url="{C:1}" appendQueryString="false" /> 
       </rule> 
      </rules> 
     </rewriteMaps> 
    </rewrite> 
</system.webServer> 

(다시 쓰기 모듈), redirects.config 파일에서 내 URL 중 하나에 대한 규칙 및 조건을 테스트 및 테스트 한 결과 작동합니다. 하지만 브라우저에서 URL로 이동하려고하면 지정한대로 리디렉션되지 않습니다. rewritemaps.config 파일에서 전체 도메인을 넣으려고했는데 aspx 앞에 "/"를 시도했습니다. 아무것도 작동하는 것 같습니다. 내가 여기서 무엇을 놓치고 있는지 잘 모르겠습니다.

답변

4

그럼 내가 일을 가지고 :

은 다음 링크를 참조하십시오. 바보 같았습니다. rewritemaps.config 파일에서 키 URL 앞에 "/"가 필요했습니다. 나는 전에 그걸 시도 했었지만, 그 당시에는 다른 곳에서 뭔가를 놓쳤을 것입니다. 오 잘. 이제 작동합니다.

+0

만약 당신이 어떤 기분이 나아질 수있게 도와 준다면, 나는 정확히 똑같은 일을 지난 주에 저질렀습니다. –

+0

rewritemaps.config 파일은 꽤 많이 캐시 될 수 있으므로 변경하지 않는 것 같습니다. 항상 효과적입니다. 변경 후 응용 프로그램 풀이 재활용되었는지 확인하십시오 (예 : 'web.config'를 터치하십시오). – Dan

0

왜 이것이 실패하는지 판단하기는 어렵지만 IIS가 무슨 일이 일어나고 있는지 알려면 실패한 요청 추적을 사용하는 것이 가장 좋습니다. FREB를 사용하면 평가 된 규칙과 평가 된 규칙이 일치하는지 또는 그렇지 않은지, 왜 그렇지 않은지에 대한 자세한 추적 정보를 얻을 수 있습니다. 또한 일치시킬 "올바른"패턴과 평가되는 모든 조건을 볼 수 있습니다. http://www.iis.net/learn/extensions/url-rewrite-module/using-failed-request-tracing-to-trace-rewrite-rules

+0

글쎄, 내가 그랬고, 그것이 실패하고있는 곳이라고 말하지만, 나는 아직도 이유를 모른다. 규칙 패턴 일치 (즉, "패턴 일치"는'일치 = "참"이라고 말합니다.)하지만 조건 평가에 실패했습니다 ('CONDITIONS_EVALUATION_END'는'성공 = "거짓"). 언급 된 URL을 가져 와서 IIS 내의 패턴으로 테스트 할 때 패턴을 일치시킵니다 (기본적으로 "aspx/drvmain.aspx"는 테스트 할 때 "(. +)"와 일치하지만 그렇지 않은 경우는 그렇지 않습니다). 실제로 브라우저를 통해 실행). – Kurt

관련 문제