我有我的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是不是真的我的域名並且正在使用只是爲了舉例說明。
奇怪,我真的看到不同的唯一的事情是,你的arent使用stopProcessing =「真」或appendQueryString =「true」。 我會嘗試刪除那些今晚從我的規則,看看是否能解決該問題。 –
還使用匹配的網址略有不同的正則表達式,並在重寫URL {R:0},而不是{R:1} –
變更礦山以符合你的風格,去掉stopProcessing = 「true」 時,刪除appendQueryString = 「真」,改變了正則表達式來匹配你的模式,並將URL切換成像你的一樣(沒有文件夾名稱並使用{R:0})。仍然沒有運氣!它看起來仍然不起作用。 –