我正在構建一個rails應用程序,我將在Heroku上的host.com上託管。而且我想在託管在phpfog上的博客中使用WordPress,但我不想使用像blog.domain.com這樣的子域。我寧願使用像domain.com/blog如何使用子目錄而不是子域?
子目錄它不是關於搜索引擎優化...我只是不喜歡子域的粉絲。子目錄更性感(是的,我實際上是這麼說的)。
關於我如何可靠地完成此任何想法?先謝謝您的幫助。
我正在構建一個rails應用程序,我將在Heroku上的host.com上託管。而且我想在託管在phpfog上的博客中使用WordPress,但我不想使用像blog.domain.com這樣的子域。我寧願使用像domain.com/blog如何使用子目錄而不是子域?
子目錄它不是關於搜索引擎優化...我只是不喜歡子域的粉絲。子目錄更性感(是的,我實際上是這麼說的)。
關於我如何可靠地完成此任何想法?先謝謝您的幫助。
我想說你最好的選擇是嘗試使用Rack中間件來做一個反向代理(類似於Apache的mod_proxy
)。
快速谷歌搜索揭示了這個寶石(https://github.com/jaswope/rack-reverse-proxy),但作者提到它可能不是生產就緒。擁有Rack中間件代理應該允許您將您的子域yourdomain.com/blog
轉發到另一個網站your-phpfog-account.com/wordpress-installation
。
據我可以告訴你,如果你可以使用Rewrite規則,就不能使用heroku訪問Apache配置文件。
如果您選擇不使用heroku,您可以隨時做下面詳細介紹的內容..但是,如果您不使用heroku,您可以輕鬆將wordpress提取到/ public/rails文件夾,並再次使用重寫規則讓Apache來處理博客請求。
在你的apache配置中,你需要添加。
RewriteRule ^/blog/?(.*)$ http://somedomain.com/~user/blog/$1 [P,NC,QSA,L]
它會將所有請求重定向到/ blog /到另一個服務器。
來源:http://www.igvita.com/2007/07/04/integrating-wordpress-and-rails/
我不認爲重寫是他想要的東西,因爲這會在地址欄的地址更改爲'another-domain.com/blog',而不是'original-domain.com/blog'。 – neezer 2011-05-30 21:03:45
啊我明白了。我不熟悉mod_rewrite的工作原理。我只是做了一些谷歌搜索,並假設他會做他想做的。 – 2011-05-30 21:18:28
您可以使用neezer發現這樣做的rack-reverse-proxy gem。首先,您需要將gem "rack-reverse-proxy", :require => "rack/reverse_proxy"
添加到您的Gemfile並運行bundle install
。接下來,您將修改config.ru
到/blog/
路由轉發到您想要的博客:
require ::File.expand_path('../config/environment', __FILE__)
use Rack::ReverseProxy do
reverse_proxy /^\/blog(\/.*)$/, 'http://notch.tumblr.com$1', opts={:preserve_host => true}
end
run YourAppName::Application
你可能已經有了第一個要求語句和run YourAppName...
聲明。有幾個重要的細節使這項工作。
首先,當您添加所需的博客URL時,無法在其上保留斜線。如果是這樣,當有人要求http://yourdomain.com/blog/
時,該寶石會將它們轉發到http://you.yourbloghost.com//
並附帶一個額外的斜線。
其次,如果:preserve_host
選項未啓用,您的博客託管服務器將看到該請求爲http://yourdomain.com/blog/
而不是http://you.yourbloghost.com
,並且將返回錯誤結果。
如果博客使用/absolute/paths/to/images/
,您仍然可能會遇到CSS或圖片問題。
你如何處理tumblr使用絕對URL鏈接到包含主機名的內容的事實? – 2012-10-08 21:43:48
克里斯,恐怕我沒有很好的解決方案。我使用的是Wordpress,您可以手動指定它在頁面內容中使用的基本路徑,所以我不需要解決這個問題。如果你想涉進定製的源代碼機架反向代理,以便它編輯認爲的tumblr返回HTML,你可以修改它.. – jplewicke 2012-10-14 14:32:28
是的,我正在玩周圍試圖找出如何做到這一點。我正在考慮做一些正則表達式替換,但是從文檔中不太清楚這將如何完成。 – 2012-10-17 03:38:17
除了jplewickeless的答案,我最終編寫了自定義Rack middelware,以取代反向代理端的絕對URL和其他路徑。本指南將幫助您開始說:
我不知道這是否是可能的,因爲你不能Heroku的主持下WordPress的。 – bruno077 2011-05-30 18:08:24
基於下面的答案,同研究,我做了位一起,我想它可能最好還是推出自己的小鐵軌博客引擎到我的應用程序。我已經看到了「在15分鐘內建立一個博客」軌道視頻。我不想使用腳手架(我可以沒有任何)。我的應用程序有點像博客式的開頭,無論如何......帖子,評論等。我將不得不設置某種用戶權限,以便只有擁有管理員帳戶的用戶才能發佈到博客。 – Eddie 2011-05-30 22:33:47
我不能爲這個項目推薦Ryan的railscasts,他有一個博客的例子,所以有很多資源可以幫助你。 http://railscasts.com – bruno077 2011-05-30 22:58:39