Подтвердить что ты не робот

Как использовать подкаталог вместо поддомена?

Я создаю приложение rails, которое я буду размещать на Heroku на domain.com. И я бы хотел использовать WordPress для блога, размещенного на phpfog, но я не хочу использовать подобный поддомен, например blog.domain.com. Вместо этого я предпочитаю использовать подкаталог, например domain.com/blog

Не о SEO... Я просто не поклонник субдоменов. Подкаталоги более сексуальны (да... я на самом деле сказал это).

Любая идея о том, как я могу это сделать? Заранее спасибо за помощь.

4b9b3361

Ответ 1

Вы можете использовать стойку-реверс-прокси-камень, который, по мнению Neezer, сделал это. Сначала вам нужно добавить 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

Вероятно, у вас уже есть первая инструкция require и оператор run YourAppName.... Есть пара важных деталей, которые делают эту работу.

Во-первых, когда вы добавляете нужный URL-адрес блога, вы не можете удерживать конечную косую черту. Если вы это сделаете, когда кто-то запросит http://yourdomain.com/blog/, жемчуг отправит их на http://you.yourbloghost.com// с дополнительной косой чертой.

Во-вторых, если параметр :preserve_host не включен, ваш сервер хостинга блога будет считать запрос как http://yourdomain.com/blog/ вместо http://you.yourbloghost.com и будет возвращать плохие результаты.

У вас все еще может быть проблема с CSS или изображениями, если в блоге используется /absolute/paths/to/images/.

Ответ 2

Я бы сказал, что лучше всего попытаться сделать обратный прокси с промежуточным ПО Rack (сродни Apache mod_proxy).

Быстрый поиск Google показал этот драгоценный камень (https://github.com/jaswope/rack-reverse-proxy), но автор упоминает, что он, вероятно, не готов к производству. Наличие прокси-сервера промежуточного программного обеспечения должно позволить вам переадресовать ваш поддомен yourdomain.com/blog на другой веб-сайт your-phpfog-account.com/wordpress-installation.

Ответ 3

Насколько я могу судить, вы не можете получить доступ к конфигурационному файлу Apache с помощью heroku, если бы вы могли использовать правило Rewrite.

Если вы решите не использовать герою, вы всегда можете делать то, что я подробно расскажу ниже. Однако, если вы не используете герою, вы можете так же легко извлечь 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/

Ответ 4

В дополнение к jplewickeless 'answer, я закончил писать пользовательскую Rack middelware, чтобы заменить абсолютные URL-адреса и другие пути на стороне обратного прокси. Это руководство поможет вам начать:

http://railscasts.com/episodes/151-rack-middleware