5160 sujets

Le Bar du forum

Hello tout le monde !

Voila je voulais savoir si vous aviez un conseil a me donner ce soir.

Voila la situation. J'ai actuellement un site internet en .fr qui contient une version FR et EN (la version EN se fait en php avec des _CONSTANTES et avec du htaccess). Ex : www.site.fr/en/accueil

Actuellement, j'ai acheté le même site en .com. Et je comptais m'y prendre comme cela : Mettre exactement le même contenu du site sur le ftp du .com (meme structure). Et ensuite supprimer toutes les _CONSTANTES et donc mettre le texte en dur sur chacun des sites.

Est-ce que vous me conseillez de faire comme cela ? Pour le référencement des pages par ex, ca sera mieux. Genre : www.site.fr/accueil et www.site.com/home

Ou bien autrement ?

Merci !
Salut,

Ce que tu peux essayer (mais, sans garantie absolue, toutefois), c'est de mettre, à la racine du site en .com, un fichier PHP (ou autre langage côté serveur) ne contenant que les paramètres nécessaires au basculement à la version anglaise et les appels d'inclusion des fichiers nécessaires stockés sur le site en .fr. De cette manière, tu pourras factoriser le code et éviter d'avoir à copier-coller la moindre modification de code.
salut

je travaille tous les jours en multilangues

les différents noms de domaines pointent en alias sur le même hébergement.
Par la reconnaissance du nom de domaine je défini différentes valeurs et en même temps un fichier de type : textes_fr.php ou textes_en.ph ou textes_it.php etc etc etc

ces fichiers contiennent tout simplement un array ou la valeur de chaque clé est soit un mot soit une phrase selon les besoins.

le code php est unique et contient les valeurs de l'array pour afficher le message

ex :


$textes[0] = "accueil";
$textes[1] = "bienvenue sur le site";

puis dans la page index .php par exemple

<a href="/"><?=$textes[0]?></a>
<p><?=$textes[1]?></p>



exemple simpliste mais suffisament clair je pense
Merci pour vos réponses.
@pchlj : Je fais deja ce systeme la pour mon site version bilingue. Mais le systeme que je veux a present est plus complexe.
@victor : Je vais faire un test en local voir ce que ca donne. Mais si je met tous les docs dans le ftp .com, qu'en est-il du .fr ?

En tout cas voici ce que j'essaye de faire :
- Si je veux faire une maj dans la bdd, la faire une seule fois (est-ce possible d'avoir une seule bdd sur deux noms de domaine sans la dupliquer ?)
- Htaccess : Que les noms des pages soit différents selon la langue

L'arborescence de mon dossier:
http://www.fannymoritz.fr/img/structure/arborescence.png

Et voici mon code header (en résumé) :

<?php require '../config/config.inc.php'; ?>
<?php $categorie = get_get_var('var'); ?>
<div class="body" id="page-<?php echo $page; ?>">


Donc le CSS de chaque page, contient #a-propos ou #accueil.
Donc si je change le nom de la page en haut de mon document config en faisant :
if($lang=="en") $page = "home" else $page = "accueil"

Tout mon CSS va buge en version en.

Quelqu'un aurait deja eu ce genre de "probleme" ?
Modifié par fanny95 (27 Nov 2012 - 06:07)
Pour la bdd :

Dans les constantes de connexions, il suffit d'indiquer l'IP de ton site .com en guise d'Host... Il m'est arrivé de travailler ainsi durant une courte période avec une base de données sur un serveur et le site sur un autre serveur. Ca marche très bien ^^ Smiley ravi (après, le système marche en mysqli parce qu'il en donne la possibilité, j'ignore si on peut le faire en PDO)
re

je ne vois pas en quoi c'est plus complexe et pourquoi tu veux absolument faire ça sur 2 hébergements :|

reprenons

tu as un site en .fr (qui actuellement contient FR et EN)

tu as un domaine en .com

le but final étant d'avoir la version fr sur le .fr et la version en sur le .com

Donc j'en reviens à mon alias...

Explication

les deux domaines pointent sur le meme hébergement
ton .htaccess contient les deux formes de liens en 'fr' et en 'en'
ie : accueil pointe sur index.php
home pointe sur index.php

dans ton config.php ou define.php

tu repères le nom de domaine d'entrée
tu met en session la langue
tu affiches les textes de la langue correspondantes (avec les liens rewrités)

et tes css tu les underscore de la langue comme ça tu appelles celui qui correspond à la langue

voilà c'est tout !

je vois pas où est la complication là dedans Smiley smile

c'est du multisite très simple...
pchlj a écrit :
tu met en session la langue

Sauf erreur de ma part, l'activation d'une session induit la création d'un cookie. Or, l'utilisateur peut avoir configuré son navigateur de façon à refuser systématiquement les cookies. Tu me diras qu'on peut configurer le serveur de façon à faire passer les paramètres de session via l'URL ; mais, bonjour, la laideur d'un ?phpsessid=1234567890abcdef !

Pour ma part, je définirais plutôt une constante enregistrant la langue principale du site en fonction du nom de domaine.
fanny95 a écrit :
Tout mon CSS va buge en version en.

Rien ne t'empêche de générer dynamiquement les CSS en PHP (ou, mieux encore, avec un préprocesseur comme Less ou Sass), en t'inspirant de ce que rapporte cet article de Nico3333fr à ce sujet.
Merci pour vos réponses. Mais je suis tout autant perdue qu'avant.

01- Comment je peux retrouver le même contenu de mon site sur la version .com sans avoir a faire une double mises-a-jour ?

02- Si je veux utiliser la même base de données, sur le .fr et le .com, je dois, dans mon fichier de config sur le .com mettre les même informations de la bdd que le .fr. C'est bien ça ?

03- Htaccess : Je dois en mettre un sur le .com et un autre sur le .fr ? Si non, puis-je en utiliser un seul (et dans ce cas la ou le mettre ? .fr ou .com) dans ce cas la comment m'y prendre ? Existe-t-il une variable comme {SERVER_LINK} pour que mon htacess soit valable autant en .fr qu'en .com ?


Voici le code de mon config.inc.php (version simplifiée, avant modifs) :
// Recuperer la langue
include('../inc/lang.php');

// Si local
if($_SERVER['SERVER_NAME']=="127.0.0.1" || $_SERVER['SERVER_NAME']=="localhost" || $_SERVER['SERVER_NAME']=="localhost:8888")
{}
// Si en ligne
else
{
	// Informations connexion BDD
	define('_SERVER',   'mysql51-46');
	define('_DB_USER',  'fm');
	define('_DB_PASS',  '****');
	define('_DB_NAME',  'fm');
	
	// Chemin d'accès vers le site
	if($lang=='en') {
		include('../config/lang_en.php');
		define('_HOST_DIR',  	'http://'.$_SERVER['HTTP_HOST'] . '/en/');
		define('_HOME',  	'http://'.$_SERVER['HTTP_HOST'] . '/en/accueil');
	} else {
		include('../config/lang_fr.php');
		define('_HOST_DIR',  	'http://'.$_SERVER['HTTP_HOST'] . '/');
		define('_HOME',  	'http://'.$_SERVER['HTTP_HOST'] . '/');
	}
	define('_LIEN',  		'http://'.$_SERVER['HTTP_HOST'] . '/');
	define('_BASE_DIR',  	$_SERVER['DOCUMENT_ROOT'] . '/');
}


Voici la nouvelle version que j'ai fais de mon config.php :
// Recuperer le nom de domaine d'entree
$link = $_SERVER['SERVER_NAME'];
if($link=='www.fannymoritz.fr') $lang = "fr"; else $lang = "en";
/* ... */
{
	// Informations connexion BDD
	define('_SERVER',   'mysql51');
	define('_DB_USER',  'fm');
	define('_DB_PASS',  '***');
	define('_DB_NAME',  'fm');
	
	// Chemin d'accès vers le site
	if($lang=='en') {
		include('../config/lang_en.php');
	} else {
		include('../config/lang_fr.php');
	}
	define('_HOST_DIR',  	'http://'.$_SERVER['SERVER_NAME'] . '/');
	define('_LIEN',  	'http://'.$_SERVER['HTTP_HOST'] . '/');
	define('_BASE_DIR',  	$_SERVER['DOCUMENT_ROOT'] . '/');
}


Voici le code de mon htacess
SetEnv PHP_VER 5
AddDefaultCharset UTF-8
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
ErrorDocument 404 /erreur-404
DirectoryIndex vues/accueil.php

RewriteRule ^categorie/([a-z]+)$			/vues/categorie.php?var=$1 [L]
RewriteRule ^([a-z-]+)/categorie/([a-z]+)$		/vues/categorie.php?var=$2&lang=$1 [L]
RewriteRule ^([a-z0-9-]+)$   				/vues/$1.php [L]
RewriteRule ^([a-z-]+)/([a-z-]+)$			/vues/$2.php?lang=$1 [L]
Bonjour,

Je sais que l'un d'entre vous m'avait aiguillé sur une solution à mon problème.
Voici le nom de LA solution : Alias de nom de domaine.
J'ai tapé ça sur Google, résultat d'une page sur OVH expliquant comment faire. Très simple pour ceux qui n'y connaisse rien en réseau.
Explication pour les ceux qui ne connaissent pas ca :
Cela permet d'avoir l'ensemble d'un site sur un seul hébergeur (un seul code FTP). Et concernant les langues, c'est un peu comme l'URL Rewriting.
Exemple : Je met l'ensemble de mon site internet sur le FTP de www.monsite.com et seulement sur celui-la. Je suis propriétaire d'autres noms de domaines comme : www.monsite.fr ou encore www.monsite.be (FTP de ceux-la vides). Je vais sur OVH (mon hebergeur), puis créer une redirection invisible (aide a la redirection ici). Cela est fait dans les 24h. Et cela fonctionnera comme cela : www.monsite.com/fr mais je verrais dans mon navigateur : www.monsite.fr

Bonne journee !
Compte plutôt 72h que 24h, mais effectivement, les alias marchent très bien ^^ (c'est la technique utilisée sous tumblr pour donner à son blog un nom de domaine propre ^^)
Bonsoir a tous,

J'ai enfin du temps pour me remettre sur ce pb de mon site que j'avais il y a quelques temps.

La derniere etape que j'avais mise en place etait l'alias du nom de domaine fait chez OVH.
Donc un seul hebergement sur le ftp du .com. Rien sur le .fr. Le site est identique sur les 2 versions.

Mais voila le pb a present : Le site est identique au niveau des langues et je n'arrive plus a dissocier le fr du en. J'ai essaye en affichant la variable $_SERVER['SERVER_NAME'] mais celle ci me donne tout le temps www.monsite.com et non www.monsite.fr quand je suis sur le .fr.

Avez-vous une idee comment je pourrais recuperer l'extension sans cette variable SERVER_NAME svp ?

Je vous remercie d'avance Smiley smile )