2014-10-27 6 views
0

Я развиваю в ASP.NET и с Serveral приложений с этой структурой папок:URL переписывания IIS для static.example.com

WWW 
-> IMG 
-> CSS 
-> JS 
-> ASPX 

Так, например:

www1.example.com/IMG/file.png 

Моя цель переписать все входящие запросы в поддомен для IMG, CSS и JS. Так что:

www1.example.com/IMG/file.png 

Или

www2.example.com/IMG/file.png 

стал бы:

static.example.com/IMG/file.png 

Они должны использовать свои собственные папки в своих собственных сайтах. Его нужно просто проложить через static.example.com. Я знаю, что могу сделать это с Apache, но до сих пор у меня нет опыта работы с IIS.

Как это технически возможно? У меня есть общие права на мой IIS 7.5. Существует несколько приложений с одинаковой структурой, и я хочу использовать каждую IMG, CSS и JS-папку. У меня есть увеличение производительности?

EDIT: 28.10.2014

Надеюсь, это становится немного яснее с этим изображением. Спасибо за ваши ответы, это мне очень помогло! Поэтому я могу переписать свой URL-адрес на «static.server.com», и теперь я хочу, чтобы изображение из нужного источника могло быть либо www1.server.com/img/abc.png OR www2.server.com/img/abc. PNG. Статический веб-сайт не должен иметь реального пути, он должен быть просто пустым веб-сайтом, который прослушивает заголовки хоста или отправляет/доставляет изображения, css и javascript из нужного источника. enter image description here

Спасибо заранее,

Daniel

ответ

1

Как уже упоминалось в этой question вы можете использовать HttpModule. Таким образом, вы можете использовать код из того же вопроса и внести его в свое требование.

private void Application_BeginRequest(Object source, EventArgs e) 
{ 
    // Create HttpApplication and HttpContext objects to access 
    // request and response properties. 
    HttpApplication application = (HttpApplication)source; 
    HttpContext context = application.Context; 
    string filePath = context.Request.FilePath; 
    string fullPath = context.Request.Url.AbsoluteUri; 
    string fileExtension = VirtualPathUtility.GetExtension(filePath); 
    if (fileExtension.Equals(".gif")) 
    { 
     context.Response.ContentType = "image/gif"; 
     context.Response.Redirect(fullPath.Replace("www.example.com", "static.example.com")); 
    } 
} 

Update

Вы можете иметь что-то вроде этого в файле web.config

<rewrite> 
    <rules> 
     <rule name="Forward to static file server"> 
      <match url="^.+\.(?:jpg|bmp|gif)$" /> 
      <action type="Rewrite" url="http://static_file_server/{R:0}" /> 
     </rule> 
    </rules> 
</rewrite> 

Подробнее here

+0

это также можно сделать поэтому через Web.conf? Я не хочу делать это на стороне кода, так как он должен быть хостом, а также работать как автономное программное обеспечение. – webprogrammer

+0

См. Мой обновленный ответ – Izzy

+0

см. Мой обновленный вопрос – webprogrammer

0

ИМХО, я не знаю, что ваш фактический используется (или может неверно истолковать ваш запрос n), так что это вариант «простой/r»:

  • DNS (вам это потребуется независимо) и;
  • yes, hostheaders, если вы используете IP-адреса.не

Нет модулей/переадресовывает, и такое - что ИМХО должно уже быть признаком того, что вы добавляете:

  • более запросов (перенаправляет)
  • добавляющие больше для вашего приложения, чтобы сделать (HttpModule что инспектирует каждый запрос)

Hth ...

+0

см. Мой обновленный вопрос – webprogrammer

+0

sry ответит вам так поздно ... Мое заявление состоит в том, что у меня есть несколько приложений, вне которых используются одни и те же CSS, JS и изображения. Я хотел бы поделиться файлами с выгодой для субдомена для повышения производительности. – webprogrammer

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