Dot-Htaccess

重寫以指向 CDN

  • January 11, 2022

我希望使用 CDN 來傳遞我們所有的圖像文件。我們通過簡單地使用 CDN 的域而不是我們自己的域來呼叫圖像。我可以在我們的內容管理系統中輕鬆更改域引用,但是預覽會中斷,因為它正在尋找尚未出現在我們的外部伺服器上的圖像,以便我們的 CDN 從中提取。我們一發布,CDN 就有一個要拉取的圖像。

我在想我可以在我們的外部站點 .htaccess 文件中添加一條規則,以將任何對圖像的請求從我們的 /webfiles 文件夾重定向到我們 CDN 上的適當文件夾。我意識到當 CDN 嘗試獲取圖像時,它會被發送回自己的伺服器,所以我添加了一個引用行,這樣只有來自我們伺服器的請求才會提取 CDN 版本。在我得到一些有見地的回饋之前,我不願意在我們的實時伺服器上嘗試這個。這種方法有意義嗎?這是正確的順序嗎?(我會先使用 302 進行測試。)

RewriteCond %{HTTP_REFERER} ^https://www.example.com [NC]
RewriteCond %{REQUEST_URI} ^\.(jpg|jpeg|png|gif|webp)$ [NC]
RewriteCond %{HTTP_HOST} ^(.*)www.example.com/webfiles/$ [NC]
RewriteRule ^(.*)$ http://example-cdn.com/webfiles/$1 [R=301,L]

添加這樣的重定向在許多方面破壞了 CDN 的目的。當客戶端請求圖像文件時,它們首先向您的伺服器發送請求,伺服器以重定向響應,然後客戶端從 CDN 請求它。

這為圖像載入增加了相當大的延遲。

您應該更改 CMS,以便在預覽中它使用來自您伺服器的 URL,但對於前端,它使用指向 CDN 的 URL。

引用自:https://serverfault.com/questions/1089682