У меня есть клиент, который хочет перенести свое приложение Rails на Heroku. Однако у клиента также есть блог, связанный с его доменом, который работает на WordPress. В настоящее время блог WordPress успешно работает вместе с приложением Rails, но после перехода на Heroku это явно станет невозможным.
URL-адрес приложения похож на http://mydomain.com, а URL-адрес блога похож на http: // мойдомен / блог.
Я понимаю, что лучшее долгосрочное решение - переделать блог в формате Rails, таком как Toto или Jekyll. Но в краткосрочной перспективе, как лучше всего продолжить размещение блога WP там, где он находится (или где-то еще), но использовать Heroku для запуска приложения? Клиент не хочет, чтобы блог находился в поддомене, но чтобы он оставался в моем домене / блоге по причинам SEO, а также из-за того, что в блог есть трафик. У меня есть две идеи:
Используйте rack_rewrite или refraction (или просто обычный старый 301 и Apache mod_rewrite) на старом (не Heroku) сервере, чтобы перенаправить основной URL-адрес со старого сайта на Heroku. В этом случае я могу просто оставить блог Wordpress, который будет счастливо работать там, где он есть. Думаю?? Есть ли причина выбрать один из этих вариантов (rack_rewrite, refraction или mod_rewrite) среди других, если я сделаю это таким образом?
Переключите информацию DNS, чтобы указать на сайт Heroku, а затем используйте перенаправление 301 с блога на старый сайт. Но тогда мне придется разместить старый (не Heroku) сайт в субдомене и все равно использовать какие-то правила перезаписи, чтобы это выглядело так, как будто это не субдомен.
Какой из этих подходов предпочтительнее, или есть другой способ сделать это проще, который мне не хватает?
Лично я бы настроил перезапись 301 для / blog и отправил бы его в поддомен, например blog.domain.com. Дает гораздо больше гибкости при выборе сервера, на котором вы ведете свой блог, скажем, в будущем клиент захочет использовать tumblr или Wordpress.com. Кроме того, поскольку это 301 редирект, любая существующая ссылка по-прежнему будет работать, и SEO не должно выполняться.
Если они действительно хотят, чтобы это была подпапка, вы можете сделать то, что рекомендует Майкл, если ваш текущий хост / установка поддерживает mod_proxy, который будет работать. Или вы можете настроить такое правило перезаписи (клиент для нашей службы хостинга использует что-то подобное)
RewriteEngine on
RewriteBase /
RewriteRule ^blog(.*) - [L]
RewriteRule ^(.*)$ http://yourapp.heroku.com/$1 [NC,R=302]
Зная, что это временный промежуток, я бы подумал о том, чтобы сделать что-то вроде обратного прокси-перехода Apache обратно в Heroku. У приложения на Heroku должно быть имя вроде yourapp.heroku.com, и вы можете без проблем отправлять на него трафик.
Взгляни на эта документация для указателей.