3 votes

Migrer un sous-domaine vers un sous-répertoire, tout en étant sur un serveur séparé

Je travaille actuellement sur un site qui est hébergé sur deux serveurs différents. Un serveur héberge le site principal (example.co.uk), l'autre serveur héberge une application de commerce électronique (Magento) et est actuellement accessible sur shop.example.co.uk.

J'ai un accès complet au serveur hébergeant le site de commerce électronique et un accès complet à la configuration du domaine; cependant, le site principal est hébergé sur un hébergement partagé et le seul accès que j'ai est via FTP.

Sans déplacer l'application de commerce électronique vers l'hébergement partagé, y a-t-il un moyen dans cette configuration pour que le site de commerce électronique soit accessible via example.co.uk/shop et uniquement cette URL? Nous voulons uniquement un accès à partir du sous-répertoire (pour des raisons de référencement), donc entrer dans le domaine shop.example.co.uk devrait rediriger vers example.co.uk/shop.

Je suis en train de vérifier si mod_proxy est disponible sur l'hébergeur partagé, bien que cela semble peu probable. Est-ce que ce serait le seul moyen de le faire?

ÉDITER : Merci pour toutes les réponses jusqu'à présent. Pour expliquer un peu la raison, il s'agit d'un client qui souhaite héberger lui-même le site principal, car il est développé et géré par une entreprise distincte.

1voto

Karol J. Piczak Points 2328

mod_proxy est en effet la solution la plus viable à laquelle je peux penser pour le moment si vous souhaitez maintenir ces sites physiquement séparés. Fondamentalement, c'est un exemple type pour le drapeau [P] de RewriteRule:

Règle donnée                                     Substitution Résultante
----------------------------------------------  ----------------------------------
^/somepath(.*) http://otherhost/otherpath$1 [P] http://otherhost/otherpath/pathinfo
                                                via proxy interne

Comme l'a mentionné Richard, en fusionnant ces deux sites physiquement ensemble, vous pouvez éviter de créer des problèmes inutiles en cours de route, et dans ce cas, cela servirait probablement mieux sur le long terme.

Cependant, j'ai eu une idée un peu bizarre - si le support de mod_proxy pose problème, et que vous ne pouvez rien y faire sur vos hébergements partagés, pourquoi ne pas inverser les rôles?

Faisons de votre serveur de commerce électronique le serveur principal qui sert tout le contenu sous exemple.fr via un proxy vers votre hébergeur partagé (utilisant maintenant un autre nom de domaine factice - comme site.exemple.fr) et exemple.fr/boutique directement. Puis redirigez tout le trafic non-proxy frappant site.exemple.fr vers exemple.fr.

La question reste cependant - pourquoi le faire en premier lieu? Si vous allez aussi loin, alors déplacer tout le site vers le serveur de commerce électronique serait plus raisonnable. Surtout dans le cas où vous pourriez rencontrer certaines contraintes de ressources sur le serveur de commerce électronique. De plus, ajouter une latence pour tout cela semble vraiment inutile. La seule situation à laquelle je pense où cela pourrait être utile est si vous avez un environnement/chaine d'outils très dédiée sur votre hébergeur partagé qu'il est difficile de reproduire sur votre serveur de commerce électronique actuel. Mais, pour être honnête, je doute que ce soit le cas.

Veuillez élaborer un peu plus sur votre raison de maintenir ces sites séparés. Peut-être pouvons-nous trouver une meilleure solution pour répondre à vos besoins sous-jacents.

0voto

anthonysomerset Points 3953

Si vous êtes prêt à passer par la douleur de modifier votre installation de magento, alors oui vous pouvez le faire

vous devrez passer par la config/base de données de magento et mettre à jour toute référence de shop.example.com à example.com/shop (vous devrez le faire si vous voulez utiliser des redirections 301 depuis shop.example.com)

de cette manière, vous pourrez ensuite le déplacer dans le sous-dossier et ensuite déplacer votre site principal dans le répertoire principal et importer tout ce site (vous devrez le faire si vous ne pouvez pas utiliser de reverse proxy, ce que je doute qu'un hébergeur mutualisé fasse pour vous)

une fois que tout est fait, vous pouvez simplement créer une redirection standard 301 de shop.example.com à example.com/shop

n'oubliez pas non plus que sauf si vous avez un SSL wildcard ou un SSL pour à la fois le domaine et le sous-domaine, vous aurez besoin d'un nouveau certificat SSL

0voto

Richard Points 166

Malheureusement, il n'y a pas de moyen facile d'accomplir cela, la méthode domain.com/shop suppose que /shop est un dossier local et non un dossier distant. Vous pourriez utiliser plusieurs méthodes .htaccess pour rediriger les clients, ou masquer l'URL mais cela causerait plus probablement de problèmes en termes d'optimisation pour les moteurs de recherche. Y a-t-il une raison particulière pour laquelle vous ne pouvez pas fusionner les deux serveurs ensemble pour utiliser le format d'URL désiré?

Si les deux serveurs sont dans le même réseau, vous pourriez envisager une connexion iscsi/nfs entre eux, permettant au dossier distant de devenir le dossier 'local' (lien symbolique).

0voto

LeonZandman Points 1136

Si vous avez mod_proxy disponible sur votre hébergement partagé, ainsi que mod_rewrite, vous pouvez utiliser quelque chose comme :

RewriteEngine On
RewriteRule ^shop/(.*)$ http://shop.example.co.uk/$1 [P]

[P] étant le drapeau proxy qui nécessite mod_proxy, ce qui devrait permettre à votre site de commerce électronique de fonctionner tel quel (je ne suis pas familier avec Magento) car les requêtes qui sont reçues par ce serveur devraient être les mêmes qu'auparavant.

Cependant, cela n'empêche pas l'accès direct à http://shop.example.co.uk, ce que vous voudriez probablement également gérer.

En espérant que cela vous aide.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X