2014-04-08 62 views
3

我有我的Web服務器上安裝了URL重寫模塊在運行Windows Server 2012的R2的一個URL,如:http://staging.mysite.net/使用IIS URL重寫模塊指向Azure的CDN

我有圖片,字體,腳本等加載到Azure CDN中。

我在Web.config文件中指定的以下規則:

<rewrite> 
    <rules> 
     <rule name="CDN: fonts" stopProcessing="true"> 
      <match url="^fonts/(.*)" /> 
      <action type="Rewrite" url="http://cdn.staging.mysite.net/fonts/{R:1}" appendQueryString="true" /> 
     </rule> 
     <rule name="CDN: images" stopProcessing="true"> 
      <match url="^images/(.*)" /> 
      <action type="Rewrite" url="http://cdn.staging.mysite.net/images/{R:1}" appendQueryString="true" /> 
     </rule> 
     <rule name="CDN: pdf" stopProcessing="true"> 
      <match url="^pdf/(.*)" /> 
      <action type="Rewrite" url="http://cdn.staging.mysite.net/pdf/{R:1}" appendQueryString="true" /> 
     </rule> 
     <rule name="CDN: scripts" stopProcessing="true"> 
      <match url="^scripts/(.*)" /> 
      <action type="Rewrite" url="http://cdn.staging.mysite.net/scripts/{R:1}" appendQueryString="true" /> 
     </rule> 
     <rule name="CDN: style" stopProcessing="true"> 
      <match url="^style/(.*)" /> 
      <action type="Rewrite" url="http://cdn.staging.mysite.net/style/{R:1}" appendQueryString="true" /> 
     </rule> 
    </rules> 
</rewrite> 

一切都被返回,即使這些文件存在一個404錯誤。例如,我的頁面可以參考/images/en-us/logo.png。我確認http://cdn.staging.mysite.net/images/en-us/logo.png確實存在。

此外,URL重寫的 「測試模式」 功能的顯示卡是{} R1當你在任一圖像輸入返回EN-US/logo.png/EN-US/logo.png/images/en-us/logo.png進入「輸入要測試的數據」字段。

我瞬間一直使用類型=試圖「重定向」,而不是類型=「重寫」,但是這將導致來自服務器的重複請求/響應。第一個是301,第二個是200.我只想要200的迴應。

++顯然,mysite.net是不是真的我的域名並且正在使用只是爲了舉例說明。

回答

5

我用下面的規則重寫下我/assets文件夾中的一切都要求其工作原理:

<rewrite> 
    <rules> 
    <rule name="Rewrite to CDN"> 
     <match url="^assets/(.+)$" /> 
     <action type="Rewrite" url="http://cdn.domain.com/{R:0}" /> 
    </rule> 
    </rules> 
</rewrite> 
+0

奇怪,我真的看到不同的唯一的事情是,你的arent使用stopProcessing =「真」或appendQueryString =「true」。 我會嘗試刪除那些今晚從我的規則,看看是否能解決該問題。 –

+0

還使用匹配的網址略有不同的正則表達式,並在重寫URL {R:0},而不是{R:1} –

+0

變更礦山以符合你的風格,去掉stopProcessing = 「true」 時,刪除appendQueryString = 「真」,改變了正則表達式來匹配你的模式,並將URL切換成像你的一樣(沒有文件夾名稱並使用{R:0})。仍然沒有運氣!它看起來仍然不起作用。 –