2012-02-15 2 views
3

По какой-то причине я, похоже, не понимаю, как это повлияет на эти правила перезаписи, и я надеялся, что вы, ребята, сможете помочь. То, что я хочу, является исходящим правилом, которое будет переписывать пути для ссылок, img, script и тегов ввода.URL-адрес переопределения URL-адреса IIS7 Исходящие правила

Я хочу изменить это: http://www.mysite.com/appname/css/file.css

Для этого: http://cdn.mysite.com/css/file.css

Таким образом, в основном мне нужно поменять имя хоста и уронить имя приложения из URL. У меня есть фильтры предварительных условий для * .aspx-файлов, установленных уже, но остальное для меня кажется греческим.

РЕДАКТИРОВАТЬ для ясности

имя_приложения в URL выше, это приложение в IIS. Это заполнитель для любого приложения, которое используется. Это может быть любое из более чем 50 различных приложений с нашей текущей настройкой. Будет ALWAYS быть приложением. Возможно, это сделает правило еще проще.

Имя хоста, в данном случае www.mysite.com, также может незначительно меняться с точки зрения субдомена. Это может быть www1.mysite.com, www2 и т. Д. Кроме того, я понял, что мне нужно поддерживать SSL, если есть.

Итак, я думаю, что, когда дело доходит до этого, мне просто нужно взять URL-адрес, минус имя приложения и добавить его в новый домен, соблюдая протокол, который использовался.

Оригинальный URL: HTTP (s): // {хост}/{имя_приложения}/{URL}

Выход: HTTP (s): //cdn.mysite.com/ {URL}

ответ

5

Я предполагаю, что ваш сайт домен всегда то же самое, то это правило должно сделать:

<rule name="CdnRule" preCondition="OnlyAspx" > 
    <match filterByTags="Img, Input, Link, Script" pattern="^(.+)://.+?\.(.+?)/.+?/(.*)" /> 
    <action type="Rewrite" value="{R:1}://cdn.{R:2}/{R:3}" /> 
</rule> 

<preConditions> 
<preCondition name="OnlyAspx"> 
    <add input="{PATH_INFO}" pattern=".+\.aspx$" /> 
</preCondition> 
</preConditions> 

EDIT: изменены в соответствии с осветленной вопрос

я предполагаю субдомен (WWW, www2, ...) всегда там и его нужно игнорировать в целевом URL-адрес.

+0

Это было полезно для настройки моего предварительного условия. Я использовал подстановочный знак * .aspx против {URL}. – IchibanChef

+0

Я изменил ответ, чтобы отразить ваши изменения в вопросе. – Tomek

+0

Это именно то, что мне нужно. Благодаря! – IchibanChef

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