2011-02-27 54 views
3

我有一個客戶想要將他的Rails應用程序遷移到Heroku。然而,客戶端也有一個與他在WordPress上運行的域相關的博客。目前,WordPress博客與Rails應用程序一起運行愉快,但一旦我們遷移到Heroku,顯然是不可能的。需要在Heroku上鍊接WP Blog與Rails應用程序

該應用的網址類似http://mydomain.com,博客的網址類似http://mydomain/blog

我意識到最好的長期解決方案是用Toto或Jekyll等Rails格式重做博客。但是從短期來看,繼續託管WP博客的最佳方式是在哪裏(或某處)使用Heroku來運行應用程序?客戶不希望博客位於子域名上,而是因爲搜索引擎優化的原因而停留在mydomain /博客上,也因爲有博客流量。我有兩個想法:

  1. 使用rack_rewrite或折射(或只是一個普通的老301和Apache mod_rewrite的)舊(非Heroku的)服務器上的主URL從舊網站重定向的Heroku。在這種情況下,我可以讓Wordpress博客愉快地運行。我認爲??如果我這樣做,是否有理由選擇其中一個選項(rack_rewrite,refraction或mod_rewrite)?

  2. 切換DNS信息以指向Heroku站點,然後使用301從博客重定向到舊站點。但是,我必須在子域上獲取舊的(非Heroku)網站,並使用某種重寫規則,因此它看起來不是子域。

這兩種方法中的哪一種更可取,還是有另一種方法可以使我更容易丟失?

+0

什麼只是寫在Ruby中的PHP執行? – 2011-02-27 01:29:35

+0

@John,我有同樣的情況。你是否遵循了Willfield的建議或找到了另一種解決方案? – Dorian 2011-08-21 19:03:16

+0

@Dorian,我剛剛說服客戶說這是一個壞主意,所以我想我確實遵循了Winfield的建議。 – 2011-08-26 23:15:00

回答

1

唯一成功的長期/可擴展解決方案是將博客永久託管在子域或不同域上,並將來自mydomain.com/blog的重定向添加到新位置(即:blog.mydomain.com) 。

您需要一臺運行前端的服務器,如mydomain.com上的Apache/nginx來提供Rails和Wordpress等混合後端,而Heroku則不可能。

不幸的是,這是您需要作爲顧問進行挖掘的地方,並且要嚴肅對待客戶的技術限制。

爲什麼你的客戶想遷移到Heroku?是否有更大的目標背後,你可以完成不同的託管,你控制前端,可以混合在不同的後端?

+0

謝謝,聽起來很不錯的建議!因爲seo原因, – 2011-02-27 21:07:16

+0

最好將博客存儲在/博客上,而不是放在子域上 – 2016-01-08 23:59:24

1

另一種解決方法是將heroku設置爲http://app.example.com,並將Wordpress設置爲http://example.com。你把你的Wordpress登陸頁面放在根目錄下,並在/博客上寫博客。當用戶點擊着陸頁上的「登錄」或「註冊」時,它們會鏈接到heroku應用程序。

這將在SEO的角度來看是最佳的,但需要一些DNS知識。

1

溫菲爾德的回答不正確。您可以在機架服務器上運行反向代理(通過Heroku)直接到博客,無論它在哪裏。

https://github.com/jaswope/rack-reverse-proxy

你安裝後的寶石和設置根據文檔的應用程序,你./config.ru文件將是這樣的:

use Rack::ReverseProxy do 
    reverse_proxy(/^\/blog(\/.*)$/, 
    'http://<app-name>.herokuapp.com$1', 
    opts = {:preserve_host => true}) 
end 
相關問題