Apache-2.4
通常如何為 Apache + CDN 架構添加尾部斜杠(不使用 Apache mod_rewrite)?
當請求 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_alias
。RedirectMatch
但是對於正則表達式來說,完成複雜的匹配模式似乎太難了(實際上,它需要正則表達式不匹配模式)。那麼如何為
Apache
+CDN
架構添加尾部斜杠呢?編輯:
感謝 Michael,事實證明 CloudFront 中的 Host 標頭白名單解決了我的問題:重定向的 URL 與舊 URL 保持一致(帶有斜杠)。
這個答案沒有解決問題參考標題。但是,由於關鍵問題是如何重定向到正確的 url,我接受以下答案。這歸功於邁克爾
它重定向到源 URL 的原因是 CloudFront 的標頭轉發。如果我們將
Host
標頭列入白名單,它將重定向到與使用者請求相同的域。