ruby-on-rails - subdirectorio - se puede posicionar un subdominio
¿Cómo puedo usar un subdirectorio en lugar de un subdominio? (4)
Estoy construyendo una aplicación de rieles que alojaré en Heroku en domain.com. Y me gustaría usar WordPress para el blog alojado en phpfog, pero no quiero usar un subdominio como blog.domain.com. Preferiría usar un subdirectorio como domain.com/blog
No se trata de SEO ... Simplemente no soy fanático de los subdominios. Los subdirectorios son más sexys (sí ... De hecho, dije eso).
¿Alguna idea sobre cómo puedo lograr esto de manera confiable? Gracias de antemano por la ayuda.
Además de la respuesta de jplewickeless, terminé escribiendo middelware Rack personalizado para reemplazar las URL absolutas y otras rutas en el lado del proxy inverso. Esta guía lo ayudará a comenzar con eso:
Por lo que puedo decir, no se puede acceder al archivo de configuración de Apache con heroku si se pudiera utilizar una regla de Reescribir.
Si eliges no usar heroku, siempre puedes hacer lo que detallo a continuación. Sin embargo, si no estás usando heroku, podrías fácilmente extraer wordpress a la carpeta / public / rails y una vez más usar una regla de reescritura para obtener apache. manejar las solicitudes de blog.
En tu configuración de apache deberás agregar.
RewriteRule ^/blog/?(.*)$ http://somedomain.com/~user/blog/$1 [P,NC,QSA,L]
Redirigirá todas las solicitudes a / blog / al otro servidor.
Fuente: http://www.igvita.com/2007/07/04/integrating-wordpress-and-rails/
Yo diría que su mejor opción es intentar hacer un proxy inverso con el middleware de Rack (similar al mod_proxy
de Apache).
Una búsqueda rápida en Google reveló esta gema ( https://github.com/jaswope/rack-reverse-proxy ), pero el autor menciona que probablemente no esté lista para producción. Tener un proxy middleware Rack debería permitirle reenviar su subdominio yourdomain.com/blog
a otro sitio web your-phpfog-account.com/wordpress-installation
.
Puede usar la gema rack-reverse-proxy que encontró Neezer para hacer esto. Primero querrá agregar gem "rack-reverse-proxy", :require => "rack/reverse_proxy"
a su Gemfile y ejecutar bundle install
. A continuación, modificará su config.ru
para reenviar el /blog/
route al blog que desee:
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
Probablemente ya tenga la primera instrucción de run YourAppName...
y la run YourAppName...
Hay un par de detalles importantes que hacen que esto funcione.
Primero, cuando agrega la URL del blog que desea, no puede mantener la barra al final. Si lo haces, cuando alguien solicite http://yourdomain.com/blog/
, la gema los reenviará a http://you.yourbloghost.com//
con una barra final adicional.
En segundo lugar, si la opción :preserve_host
no está habilitada, su servidor de alojamiento de blogs verá la solicitud como http://yourdomain.com/blog/
lugar de como http://you.yourbloghost.com
y arrojará malos resultados .
Aún puede tener un problema con el CSS o las imágenes si el blog usa /absolute/paths/to/images/
.