Rewrite

是否可以在保留域名的同時將子目錄重定向到另一台伺服器

  • January 24, 2021

我們在域下有一個工作網站x.domain.tld。我們想以我們擁有的方式向它添加一個 wordpress,x.domain.tld/blog但將它安裝在另一台伺服器上,這樣我們就不會在這個舊的(但工作的)伺服器上碰任何東西。

那麼我可以啟動一個新伺服器,在其上安裝 wordpress,在 x.domain.tld/blog 上進行 apache 重定向以重定向到新伺服器 IP,同時將域名保留在客戶端的 url 中嗎?

這對我來說似乎不可行。而且我們不願意將整個舊應用程序遷移到新伺服器。還有另一種方法嗎?

感謝您的幫助

這是反向代理的一個完全有效的案例。我連結到 Nginx 網站進行解釋,因為 Nginx 非常擅長反向代理,但 Apache 與mod_proxyandmod_proxy_http也可以完美地工作。

這裡有很多關於這個主題的高質量答案的問題;@HermanB 連結了其中一個,但我建議您也搜尋其他人。

基本上,只需在 VirtualHost 中執行以下操作即可完成此任務:

<VirtualHost *:80>
  ServerName x.domain.tld
  ...
  ProxyPass /blog/  http://blog.domain.tld/blog/
  ProxyPassReverse /blog/  http://blog.domain.tld/blog/
</VirtualHost>

除了“主站點”之外,還可以應用這樣的配置,即不在/blog/URI 下的所有內容都將像以前一樣提供服務,就好像沒有代理指令一樣。

從配置片段中可以明顯看出,部落格本身必須安裝到 Web 伺服器blog.domain.tld,以便在路徑下可用blog。我強烈推薦這種方法,它不能被rebase(即/blog/必須在兩個伺服器上使用相同的URI base);通過這種方式,您將輕鬆規避一些難以解決的問題,這些問題源於反向代理通常不會重寫代理數據中的 URL。並確保您的應用程序 (Wordpress) 僅使用相對URI 生成所有內部連結。

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