Apache-2.4

通常如何為 Apache + CDN 架構添加尾部斜杠(不使用 Apache mod_rewrite)?

  • December 26, 2018

當請求 URL 中不存在斜杠時,我一般想添加斜杠:

當使用者請求時https://example.com/blog,它應該被重定向到https://example.com/blog/

當使用者請求時https://example.com/abc.jpg,應按原樣提供

當伺服器是Apache時,似乎它通常是由mod_rewrite. 不幸的是,我們的系統包含一個CDN( AWS CloudFront) ,這在使用時會導致問題mod_rewite:請求將被重定向到源伺服器,並且瀏覽器中的 URL 會更改為源伺服器的 URL。

我也試過了mod_aliasRedirectMatch但是對於正則表達式來說,完成複雜的匹配模式似乎太難了(實際上,它需要正則表達式不匹配模式)。

那麼如何為Apache+CDN架構添加尾部斜杠呢?

編輯:

感謝 Michael,事實證明 CloudFront 中的 Host 標頭白名單解決了我的問題:重定向的 URL 與舊 URL 保持一致(帶有斜杠)。

這個答案沒有解決問題參考標題。但是,由於關鍵問題是如何重定向到正確的 url,我接受以下答案。這歸功於邁克爾

它重定向到源 URL 的原因是 CloudFront 的標頭轉發。如果我們將Host標頭列入白名單,它將重定向到與使用者請求相同的域。

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