2014-10-27 124 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文件夾。我有一個性能提升?

編輯:2014年10月28日

希望它得到與此圖像更清晰一點。感謝您的回答,它幫助了我很多!所以我可以將我的URL重寫爲「static.server.com」,現在我想要來自正確來源的圖像,可以是www1.server.com/img/abc.png或www2.server.com/img/abc。 PNG。靜態網站不應該有一個真正的路徑,它應該只是一個空白的網站,監聽主機標題或發佈/獲取從正確的來源提供圖像,CSS和JavaScript。 enter image description here

由於提前,

丹尼爾

回答

1

在本question可以使用HTTP模塊提及。因此,您可以使用相同問題的代碼並將其修改爲您的要求。

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")); 
    } 
} 

更新

你可以有這樣的事情在你的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 2014-10-27 14:33:47

+0

查看我的更新回答 – Izzy 2014-10-27 14:47:31

+0

查看我更新的問題 – webprogrammer 2014-10-28 09:56:39

0

恕我直言,我不知道你的實際用例是(或可能誤解了你的問題n),所以這是一個「簡單/ r」選項:

  • DNS(你將需要這個無論)和;
  • 是的,主機頭如果你是共享IP地址。

沒有模塊/重定向,而這樣的 - 這恕我直言應該已經是您要添加的跡象:

  • 更多的請求(重定向)
  • 添加更多的應用程序做(HTTP模塊該檢查每個要求)

H個...

+0

查看我更新的問題 – webprogrammer 2014-10-28 09:56:57

+0

sry回覆這麼晚... 我的用例是我有多個應用程序使用相同的CSS,JS和圖像。我想分享這些文件與子域的好處,以提高性能。 – webprogrammer 2015-03-03 14:19:04