2014-10-23 5 views
2

도메인에 웹 사이트가있는 Azure CDN이 있고 www.mydomain.co.uk이 자동으로 선택되었습니다 (변경 옵션이 없음). Github에서 자동 배포를 사용하므로 저장소 원본을 사용하지 않을 것입니다. 따라서 azxxxxxxx.vo.msecnd.net은 www.mydomain.co.uk에서 콘텐츠를 검색하고 로컬로 캐시합니다.재 작성 규칙이있는 Azure CDN

그러나 www.mydomain.co.uk를 mydomain.com으로 리디렉션하는 URL 쓰기 규칙이 있습니다 (다양한 SEO 이유로). 이로 인해 CDN 콘텐츠가 캐시하기 위해 CDN에 콘텐츠를 제공하는 대신 301 리디렉션을 반환하도록 요청할 수 있습니다. Azure CDN에서 콘텐츠를 요청할 때 URL 다시 쓰기를 중지 할 수있는 방법이 있습니까?

당신은 내가이 문제를 해결하는 방법을 알고 할 수 있습니다 다른 사람을 위해 https://github.com/brentnewbury/PersonalSite/blob/master/web.config

+1

CDN의 경우/cdn 경로를 사용합니다. URL 재 작성 규칙에서 해당 경로를 제외 할 수 있습니까? –

+0

안녕하세요, Erik,/cdn이 포함 된 코드는 결국 결국 생각해 냈습니다. 나는 어제 밤 대답으로 올리려했으나 조금 늦어지고 있었다. –

답변

2

에서 코드와 URL 재 작성 규칙을 볼 오신 것을 환영합니다보다 더있어, 나는 URL 재 작성 규칙 (아래 참조)를 쓰기로했다 그 /cdn/을 찾아서 경로를 지정하고 다른 규칙을 더 이상 처리하지 않습니다. 이것은 잘 작동하는 것 같습니다. /img/pic.jpg에 저장된 이미지에 대한 내 HTML의 참조는 //azxxxxxxx.vo.msecnd.net/cdn/img/pic.jpg과 같습니다.

<rule name="CDN Passthrough" stopProcessing="true"> 
    <match url="(.*)(cdn/)([\S]+)" /> 
    <action type="Rewrite" url="{R:1}/{R:3}"/> 
</rule> 
+0

그래서 모든 CDN 자산을'/ cdn /'에 저장합니까? 나는이 같은 문제에 직면 해있다. Azure CDN이 사용자 정의 도메인을 사용하도록 설정하고 사용했다면 더 좋을 것입니다. 슬롯으로 무엇을합니까? 어쩌면 얼룩 저장은 이런 이유들로 더 낫습니다. 확실하지 않습니다. 나는 CDN 원점에 대해 "Custom Origin"을 시도 할 것입니다. – kamranicus

+0

모든 자산은 루트 아래의 폴더에 저장됩니다. 당시 Azure CDN은 현재 변경된 원본 도메인을 선택했으나 선택한 (.co.uk)은 301 (.com) 이었으므로 자산이 CDN에서로드되지 않았습니다. 그래서 "cdn /"폴더를 제거하고 URL을 다시 쓰며 다른 규칙 (301 리디렉션) 처리를 중단하는 "CDN 패스 스루"규칙을 추가했습니다. https://github.com/brentnewbury/PersonalSite를 참조하십시오. 희망이 도움이됩니다. –

+0

나는 사용자 원점 (내 메인 도메인)으로 작업하고있다. 그러나 "cdn"폴더의 출처는 아직도 혼란 스럽습니다. CDN 폴더가 없다면, Azure CDN은 모든 요청 앞에 "cdn /"을 붙입니다. 예 : "cdn/images/foo.png"? 편집 : 나는 당신의 CDN 도메인이 xxxx.com/cdn임을 안다. 내 것이 아니기 때문에 나는 혼란 스러웠다. – kamranicus