Comment puis-je utiliser un sous-répertoire au lieu d'un sous-domaine?

je construis une application rails que je vais héberger sur Heroku à domain.com. Et je voudrais utiliser WordPress pour le blog hébergé sur phpfog, mais je ne veux pas utiliser un sous-domaine comme blog.domain.com. Je préférerais plutôt utiliser un sous-répertoire comme domain.com/blog

Son pas sur le RÉFÉRENCEMENT...Je ne suis pas fan des sous-domaines. Les sous-répertoires sont plus sexistes (Oui...J'ai vraiment dit ça).

Aucune idée sur comment je peux accomplir de manière fiable? Merci d'avance pour l'aide.

19
demandé sur Paul Biggar 2011-05-30 21:59:43

4 réponses

Vous pouvez utiliser le rack-reverse-proxy gem que neezer trouvé pour ce faire. D'abord, vous aurez envie d'ajouter gem "rack-reverse-proxy", :require => "rack/reverse_proxy" à votre Gemfile et run bundle install. Ensuite, vous allez modifier votre config.ru avant le /blog/ route désirée pour votre blog:

require ::File.expand_path('../config/environment',  __FILE__)

use Rack::ReverseProxy do  
       reverse_proxy /^\/blog(\/.*)$/, 'http://notch.tumblr.com', opts={:preserve_host => true}
end

run YourAppName::Application

vous avez probablement déjà le premier require statement et le run YourAppName... déclaration. Il y a quelques détails importants qui font que cela fonctionne.

tout d'abord, lorsque vous ajoutez L'URL de votre blog désiré, vous ne pouvez pas garder la barre oblique sur elle. Si vous le faites, quand quelqu'un demande http://yourdomain.com/blog/, le gem transmettra à l' http://you.yourbloghost.com// avec un slash arrière supplémentaire.

deuxièmement, si le :preserve_host option n'est pas activée, votre blog hébergement de serveur va voir la demande comme étant http://yourdomain.com/blog/ au lieu de http://you.yourbloghost.com et sera de retour de mauvais résultats.

Vous reste peut-être un problème avec le CSS et les images, si le blog utilise /absolute/paths/to/images/.

18
répondu jplewicke 2017-01-20 16:52:02

je dirais que votre meilleur pari est d'essayer et de faire un mandataire inverse avec Rack middleware (semblable à Apache mod_proxy).

une recherche rapide sur Google a révélé ce joyau (https://github.com/jaswope/rack-reverse-proxy), mais l'auteur mentionne qu'il n'est probablement pas prêt pour la production. Avoir un rack middleware proxy devrait vous permettre de faire suivre votre sous-domaine yourdomain.com/blog vers un autre site web your-phpfog-account.com/wordpress-installation.

3
répondu neezer 2011-05-30 21:00:45

pour autant que je sache, vous ne pouvez pas accéder au fichier de configuration Apache avec heroku si vous pouvez utiliser une règle de réécriture.

Si vous choisissez de ne pas utiliser heroku, vous pouvez toujours faire ce que je détaille ci-dessous.. Cependant, si vous n'utilisez pas heroku, vous pouvez tout aussi facilement extraire wordpress vers le dossier /public/ rails et une fois de plus utiliser une règle de réécriture pour obtenir apache pour gérer les requêtes blog.

dans votre configuration apache, vous devrez ajouter.

RewriteRule ^/blog/?(.*)$ http://somedomain.com/~user/blog/ [P,NC,QSA,L]

il sera rediriger toutes les requêtes vers /blog/ vers l'autre serveur.

Source:http://www.igvita.com/2007/07/04/integrating-wordpress-and-rails/

1
répondu Jamie Maddocks 2011-05-30 21:01:27

en plus de la réponse de jplewickeless, j'ai fini par écrire un middelware Rack personnalisé pour remplacer les urls absolues et les autres chemins sur le côté du mandataire inverse. Ce guide vous permettra de commencer:

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

0
répondu wspruijt 2013-09-11 14:28:00