2014-10-23 3 views
2

У меня есть Azure CDN с источником сайта для моего домена, и он выбрал www.mydomain.co.uk автоматически (без возможности изменить его). Я бы предпочел не использовать источник хранения, поскольку у меня есть автоматическое развертывание из Github. Таким образом, azxxxxxxx.vo.msecnd.net будет получать контент с сайта www.mydomain.co.uk и кэшировать его локально.Azure CDN с правилами перезаписи

Однако у меня есть правило записи URL, которое перенаправляет www.mydomain.co.uk на mydomain.com (по разным причинам SEO). Это приведет к тому, что запросы на содержимое CDN возвратят 301 переадресацию, а не обслуживают содержимое CDN для кэширования. Есть ли способ остановить переписывание URL-адресов, когда контент запрашивается Azure CDN?

Вы более чем желателен, чтобы увидеть правила кода и URL переписывания на https://github.com/brentnewbury/PersonalSite/blob/master/web.config

+1

Для CDN вы используете путь/cdn, можете ли вы исключить этот путь из правила URL Rewrite? –

+0

Привет Эрик, код, который вы видели, который содержит/cdn, - это то, что я в итоге придумал. Я собирался опубликовать его как ответ вчера вечером, но он немного опоздал. –

ответ

2

Для других, которые хотят знать, как я решил эту проблему, я решил написать правило URL переписывания (см ниже), что ищет /cdn/ и маршрутизирует это и больше не обрабатывает другие правила. Кажется, это хорошо работает. Это означает, что ссылки в моем HTML будут выглядеть как //azxxxxxxx.vo.msecnd.net/cdn/img/pic.jpg для изображения, которое хранится в /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 знал, что у вас есть настраиваемый домен, и он его использовал. Что вы делаете с слотами ...? Возможно, хранилище blob лучше из-за этих причин, не уверен. Я собираюсь попробовать «Custom Origin» для происхождения CDN. – kamranicus

+0

Все мои ресурсы хранятся в папках под корнем. В то время Azure CDN выбрала исходный домен, который теперь изменился), но тот, который он выбрал (.co.uk), имел 301 (к .com), поэтому активы не загружались из CDN. Поэтому я добавил правило «CDN Passthrough», которое удалит папку «cdn /», переписав URL-адрес и прекратит обработку других правил (перенаправление 301). См. Https://github.com/brentnewbury/PersonalSite. Надеюсь это поможет. –

+0

У меня есть работа (я думаю) с обычным происхождением (мой основной домен). Тем не менее, я все еще запутался, откуда приходит папка cdn. Если у вас нет папки CDN, Azure CDN префикс все запросы с помощью «cdn /»? например "CDN/изображения/foo.png"? edit: Я вижу, что ваш домен CDN - xxxx.com/cdn, у меня нет, поэтому, возможно, именно поэтому я был в замешательстве. – kamranicus

Смежные вопросы