2012-08-13 4 views
0

IIS Rewrite Module을 사용하여 블로그 간의 마이그레이션을 처리하므로 프로세스에서 링크가 끊어지지 않습니다. 그래서 저는 301 개의 리디렉션을 사용하고 있습니다.IIS 7.5 URL 다시 쓰기 모듈로 링크를 다시 포맷 하시겠습니까?

그러나 성능 및 서구 이유 때문에 가능한 경우 리디렉션을 피하고 싶습니다. 내 규칙을 코드에 복사하여이 작업을 수행 할 수 있습니다. 하지만 먼저 물어볼 줄 알았다. 재 작성 모듈에 대한 규칙을 재사용하여 링크를 사전 처리하고 다시 포맷 할 수 있습니까?

다음 ... 블로그 테마에서 발췌 한 것입니다

<a rel="bookmark" href="<%=Post.PermaLink %>" title="<%=Server.HtmlEncode(Post.Title) %>">Permalink</a> 
내가 ReformatLink 지정된 URL의 URL 재 작성 규칙을 실행하고 새를 반환 href="ReformatLink(Post.PermaLink)", 같은 것을이를 변경하려면

URL.

답변

1

다른 방법을 찾았습니다. BlogEngine.Core를 수정하여 원하는 링크 형식을 정확하게 만들 수 있습니다. Post.cs 내부에서 나는 단순히 속성을 PermaLinkRelativeLink으로 변경하여 이전 블로그 소프트웨어의 링크 구조를 반영합니다.

뭔가를 놓친 경우를 대비하여 현재 재 작성 모듈 규칙을 그대로 두겠습니다. 그러나 이것은 문제를 해결하는 것 같습니다.

0

나는이 라이브러리 http://www.iis.net/download/urlrewrite을 사용하고 있으며 다음과 같은 작업을하고 있습니다.

<rule name="FolderAndNoQueryString" stopProcessing="true"> 
     <match url="^([^/]+)/([^/]+)/?$" /> 
     <conditions> 
     <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
     <!-- The following condition prevents rule from rewriting requests to .axd files --> 
     <add input="{URL}" negate="true" pattern="\.axd$" /> 
     </conditions> 
     <action type="Rewrite" url="{R:1}/{R:2}.aspx" /> 
    </rule> 

제 HTML 코드에는 다음과 같은 내용이 있습니다.

<a href="<%=AppSettings("ApplicationPath") %>Folder/MyActualASPXPage">My Link</a> 

ApplicationPath는 아래 그림과 같이 보통 Web.Config 키입니다.

<add key="ApplicationPath" value="/MyVirtualDir/" />