2012-02-10 5 views
0

첫 번째 다시 쓰기 규칙 (아래) "읽기 가능한 URL로 다시 작성"은 완벽하게 작동합니다.URL 재 작성 규칙으로 인해 피해 발생

http://www.mydomain.com/blog... 

이 어울린다 :

http://mydomain.com/blob... 

지금이 약간 혼란을 일으키는 두 번째 규칙, "WWW 접두사를 제거"는 WWW의 URL과 접두사, 그래서이 제거됩니다. 규칙이 작동하는 경우 문서를로드 잘, 예를 들어 WWW가 존재하지만, 브라우저의 주소 표시 줄에 URL 불행히도 이런 식으로 읽을 수없는 버전으로 다시 변경합니다

http://mydomain.com/blog/article.asp?id=1&title=blog-title 

그러나 재 작성은을 일했다 WWW가 제거되었습니다. 하지만 친숙한 URL에서 친숙하지 않은 URL로 변경된 이유는 무엇입니까? 아무도 내 실수를 발견하거나이를 수정하는 방법을 제안 할 수 있습니까? 당신이 리디렉션으로 재 작성 프로세스의 결과를 먹이처럼

<rules> 
    <rule name="Rewrite to readable URL"> 
      <match url="^blog/([0-9]+)/([_0-9a-z-]+)" /> 
      <action type="Rewrite" url="blog/article.asp?id={R:1}&amp;title={R:2}" /> 
    </rule> 
    <rule name="Remove WWW prefix" > 
     <match url="(.*)" ignoreCase="true" /> 
     <conditions> 
     <add input="{HTTP_HOST}" pattern="^www\.mydomain\.com" /> 
     </conditions> 
     <action type="Redirect" url="https://mydomain.com/{R:1}" redirectType="Permanent" /> 
    </rule> 
</rules> 

답변

1

것 같습니다 :

이 내 web.config 파일의 일부입니다. 두 규칙의 순서를 변경하십시오.

조금 더 제어하려면 rule 태그에 stopProcessing = "true"를 추가 할 수 있습니다.

귀하의 경우 재 작성 및 리디렉션은 완전히 별도의 프로세스 여야합니다.

+0

나는 두 규칙을 서로 바꿨다. 답변 주셔서 감사합니다 :) – TheCarver