3

클라이언트 용 사이트를 다시 제작하는 프로젝트가 있는데 새로운 사이트는 .net 플랫폼에서 umbraco를 사용하고 있습니다. 이전 사이트는 차가운 융합이었다.urlrewriting.net 가상 URL의 문자로 인해 리디렉션 루프가 발생했습니다.

Umbraco는 urlrewriting.net 라이브러리를 사용하므로 오래된 냉담한 URL에 대한 301 개의 리디렉션 규칙을 만들었지 만이 코드는 무한 루프를 일으키고 있습니다.

<add name="r66" virtualUrl="^~/thing_info/index.cfm.D413249D-BCD8-304B-02CD-561DAC70641E$" 
       destinationUrl="~/about-us/award-winning-product" redirect="Application" redirectMode="Permanent" ignoreCase="true" /> 

"." 특별한 의미를 지니고 있지만 충분히 잘 작동하며 또한 ""사용했습니다. "?" 쿼리 문자열을 시작하는 문자. 나는 내가 URL (물음표가 유일한 차이점을)하려고하면

http://staging.site/thing_info/index.cfm?D413249D-BCD8-304B-02CD-561DAC70641E 
나는 그러나

http://staging.site/about-us/award-winning-product 

올바르게 리디렉션 그래서

http://staging.site/thing_info/index.cfm-D413249D-BCD8-304B-02CD-561DAC70641E 

같은 쿼리 문자열없이 URL을하려고 방문하는 경우

그런 다음 자체가 리디렉션 루프로 끝납니다. (나는 응답 헤더를 확인했다)

내가 잘못했거나 urlrewriting.net 라이브러리에 버그가있는 사람은 누구나 아는 사람이 있습니까? 또는 문제를 해결하는 방법?

답변

2

그 정규 표현식입니다. 모든 문자를 의미합니다. 당신은 점을 이스케이프 해 볼 수 있습니다. 또는 \를 사용하여 질문하십시오. 그 문자를 구체적으로 일치시킵니다.

+0

나는 그렇게 생각하지 않는다. 나는이 시나리오를 다루는 문장을 가지고있다. – Myster

5

기본적으로 UrlRewritingNet은 패턴 일치에 쿼리 문자열을 포함하지 않습니다. 이 수 있도록이 사용 해보세요 다음과 같은 속성 rewriteUrlParameter = "IncludeQueryStringForRewrite"

<add name="r66" virtualUrl="^~/thing_info/index.cfm.D413249D-BCD8-304B-02CD-561DAC70641E$" 
    destinationUrl="~/about-us/award-winning-product" redirect="Application" redirectMode="Permanent" 
    ignoreCase="true" rewriteUrlParameter="IncludeQueryStringForRewrite" /> 

을 추가하고 작동하는지 알려해야합니다. 영구 301 리디렉션 사용 umbraco 및 UrlRewritingNet을하려고 할 때

조나단

2

나는 같은 문제가 있었다.

이 나는 ​​그것이 조나단의 대답의 조합이 rewriteUrlParameter = "IncludeQueryStringForRewrite"를 추가했다/설정/urlrewriting.config

<add name="Rule1885" 
     virtualUrl="^~/whats-on/event\.aspx\?id=1885" 
     destinationUrl="~/whats-on/event.aspx?id=1822" 
     rewriteUrlParameter="IncludeQueryStringForRewrite" 
     redirectMode="Permanent" 
     redirect="Application" 
     ignoreCase="true" /> 

umbraco에 다음 항목 작업 있어요 당겨 약간의 머리를 읽은 후을 입력하고 virtualUrl 매개 변수를 올바르게 이스케이프 처리합니다.

관련 문제