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>
당신은 정확한 규칙을 게시 할 수 (규칙의 경우 하나 이상)이 (의 Web.config에서 복사/붙여 넣기)를 사용하고 있습니까? 코드에서 리디렉션/다시 쓰기가 있습니까? 두 번째 URL과 함께 실패하는 이유는 없습니다. – cheesemacfly
@cheesemacfly 완료. 그리고 코드가 없습니다 - 리다이렉트, 자바 스크립트 등이없는 매우 기본적인 HTML/CSS 페이지입니다. – TrueWill
이 문제가 어디에서 오는지 실제로 알 수 없습니다. ''을 (를) 삭제 해 주실 수 있습니까? 아무것도 변경하지 말아야하지만 여기에서는 사용하지 않습니다 ... [실패한 요청 추적 도구] (http://www.iis.net/learn/extensions/url-rewrite-module/using-failed)를 실행할 수 있습니까? -request-tracing-to-trace-rewrite-rules)하고 결과를 인터넷의 어딘가에 게시하여 이상한 것이 있는지 확인하십시오 (2 개의 요청을 기록 할 수있는 경우 하나는 작동하지 않지만 하나는 그렇지 않은 경우). –
cheesemacfly