如何在 Apache 中重定向 URL 到另外一臺伺服器

Gabriel Cánepa發表於2017-01-02

如我們前面兩篇文章(使用 mod_rewrite 執行內部重定向基於瀏覽器來顯示自定義內容)中提到的,在本文中,我們將解釋如何在 Apache 中使用 mod_rewrite 模組重定向對已移動到另外一臺伺服器上的資源的訪問。

假設你正在重新設計公司的網站。你已決定將內容和樣式(HTML檔案、JavaScript 和 CSS)儲存在一個伺服器上,將文件儲存在另一個伺服器上 - 這樣可能會更穩健。

建議閱讀: 5 個提高 Apache Web 伺服器效能的提示

但是,你希望這個更改對使用者是透明的,以便他們仍然能夠透過之前的網址訪問文件。

在下面的例子中,名為 assets.pdf 的檔案已從 192.168.0.100(主機名:web)中的 /var/www/html 移動到192.168.0.101(主機名:web2)中的相同位置。

為了讓使用者在瀏覽到 192.168.0.100/assets.pdf 時可以訪問到此檔案,請開啟 192.168.0.100 上的 Apache 配置檔案並新增以下重寫規則(或者也可以將以下規則新增到 .htaccess 檔案)中:

RewriteRule "^(/assets\.pdf$)" "http://192.168.0.101$1"  [R,L]

其中 $1 佔位符,代表與括號中的正規表示式匹配的任何內容。

現在儲存更改,不要忘記重新啟動 Apache,讓我們看看當我們開啟 192.168.0.100/assets.pdf,嘗試訪問 assets.pdf 時會發生什麼:

建議閱讀: 25 個有用的網站 .htaccess 技巧

在下面我們就可以看到,為 192.168.0.100 上的 assets.pdf 所做的請求實際上是由 192.168.0.101處理的。

# tail -n 1 /var/log/apache2/access.log

Check Apache Logs

檢查 Apache 日誌

在本文中,我們討論瞭如何對已移動到其他伺服器的資源進行重定向。 總而言之,我強烈建議你看看 mod_rewrite 指南和 Apache 重定向指南,以供將來參考。

一如既往那樣,如果您對本文有任何疑慮,請隨時使用下面的評論欄回覆。 我們期待你的迴音!


作者簡介:Gabriel Cánepa 是來自阿根廷聖路易斯 Villa Mercedes 的 GNU/Linux 系統管理員和 Web 開發人員。 他在一家全球領先的消費品公司工作,非常高興使用 FOSS 工具來提高他日常工作領域的生產力。


via: http://www.tecmint.com/redirect-website-url-from-one-server-to-different-server/

作者:Gabriel Cánepa 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

相關文章