2013-09-21 7 views
0

LAMP/PHP에서 IIS로 블로그를 이전하고 있습니다. URL을 유지하려면 URL 재 작성 모듈을 사용하고 있습니다. 192 페이지 중 191 페이지에서 작동합니다. 본질적으로 URL의 "index.php"부분을 디렉토리 이름으로 바꾸고 ".html"접미사를 추가해야합니다.URL 다시 쓰기가 특정 접미어로 작동하지 않습니다.

내 정규식 패턴 :

^myblog/index\.php/(.+) 

내 재 작성 URL :

http://www.MYSITE/myblog/contents/2013/04/29/goto_slides.html 
012,351,641에

http://www.MYSITE/myblog/index.php/2013/04/29/goto_slides 

를 재 작성이 대부분의 경우에 작동

myblog/contents/{R:1}.html 

,

그러나, 하나의 경우에 실패

http://www.MYSITE/myblog/index.php/2013/04/29/goto_notes_evolving_java 

이 404을 반환하고 오류 페이지가 요청 된 URL은 말한다 :

http://MYSITE:80/myblog/contents/2013/04/29/goto_notes_evolving_java 

(이하 ".html 중에서"접미사가 추가되지 않았습니다 참고 ; 추가로 페이지를 찾습니다.)

작동하는 URL과 작동하지 않는 URL 간에는 'java'라는 유일한 차이점이 있습니다.

어떻게 해결할 수 있습니까? 요청에 따라


의 Web.config :

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
     <directoryBrowse enabled="false" /> 
     <rewrite> 
      <rules> 
       <clear /> 
       <rule name="Rewrite blog URL from old PHP location" stopProcessing="true"> 
        <match url="^myblog/index\.php/(.+)" /> 
        <conditions logicalGrouping="MatchAll" trackAllCaptures="false" /> 
        <action type="Rewrite" url="myblog/contents/{R:1}.html" appendQueryString="true" /> 
       </rule> 
      </rules> 
     </rewrite> 
    </system.webServer> 
</configuration> 
+0

당신은 정확한 규칙을 게시 할 수 (규칙의 경우 하나 이상)이 (의 Web.config에서 복사/붙여 넣기)를 사용하고 있습니까? 코드에서 리디렉션/다시 쓰기가 있습니까? 두 번째 URL과 함께 실패하는 이유는 없습니다. – cheesemacfly

+0

@cheesemacfly 완료. 그리고 코드가 없습니다 - 리다이렉트, 자바 스크립트 등이없는 매우 기본적인 HTML/CSS 페이지입니다. – TrueWill

+1

이 문제가 어디에서 오는지 실제로 알 수 없습니다. ''을 (를) 삭제 해 주실 수 있습니까? 아무것도 변경하지 말아야하지만 여기에서는 사용하지 않습니다 ... [실패한 요청 추적 도구] (http://www.iis.net/learn/extensions/url-rewrite-module/using-failed)를 실행할 수 있습니까? -request-tracing-to-trace-rewrite-rules)하고 결과를 인터넷의 어딘가에 게시하여 이상한 것이 있는지 확인하십시오 (2 개의 요청을 기록 할 수있는 경우 하나는 작동하지 않지만 하나는 그렇지 않은 경우). – cheesemacfly

답변

1

문제가 해결 될 조건을 제거.
규칙이 될 것입니다 :

<rule name="Rewrite blog URL from old PHP location" stopProcessing="true"> 
    <match url="^myblog/index\.php/(.+)" /> 
    <action type="Rewrite" url="myblog/contents/{R:1}.html" appendQueryString="true" /> 
</rule> 
관련 문제