Personnalisez vos URL avec Domain Mapping (en définissant un sous-domaine (ou un domaine) par pays).
Fonctionnalités
- Personnalisez vos URL avec Domain Mapping (en définissant un sous-domaine (ou un domaine) par pays).
- Vous permet d'utiliser l'application principale avec plusieurs sous-domaines ou domaines.
- Optimisez le SEO de votre site web par sous-domaine (ou par domaine).
- Partage de session entre les sous-domaines du domaine de l'URL principale (
APP_URLdu fichier /.env).
NOTE : Cet add-on ne prend pas en charge les sous-domaines de sous-domaines. L'add-on ne peut pas non plus partager une session entre deux domaines distincts (comme foo.com et bar.com). Consultez aussi Licence & Domaines pour savoir comment les clés de licence s'appliquent aux sous-domaines et aux domaines supplémentaires.
Compatibilité
- v6.0.1 => LaraClassifier v19.1.3+ et JobClass v19.1.3+
- v6.0.0 => LaraClassifier v19.0.0+ et JobClass v19.0.0+
- v5.5.1 => LaraClassifier v18.3.0+ et JobClass v17.3.0+
- v5.5.0 => LaraClassifier v18.2.0 et JobClass v17.2.0
- v5.4.9 => LaraClassifier v18.1.1 et JobClass v17.1.1
- v5.4.8 => LaraClassifier v18.1.0 et JobClass v17.1.0
- v5.4.7 => LaraClassifier v18.0.3 et JobClass v17.0.3
- v5.4.6 => LaraClassifier v18.0.2 et JobClass v17.0.2
- v5.4.5 => LaraClassifier v18.0.1 et JobClass v17.0.1
- v5.4.4 => LaraClassifier v18.0.0 et JobClass v17.0.0
- v5.4.3 => LaraClassifier v18.0.0.beta et JobClass v17.0.0.beta
- v5.4.2 => LaraClassifier (v17.1.0 à v17.1.1) et JobClass (v16.1.0 à v16.1.1)
- v5.4.1 => LaraClassifier (v17.0.0 à v17.0.1) et JobClass (v16.0.0 à v16.0.1)
- v5.4.0 => LaraClassifier v17.0.0 et JobClass v16.0.0
- v5.3.6 => LaraClassifier v16.0.2 et JobClass v15.0.2
- v5.3.5 => LaraClassifier v16.0.1 et JobClass v15.0.1
- v5.3.4 => LaraClassifier v16.0.0 et JobClass v15.0.0
- v5.3.3 => LaraClassifier (v15.4.0 à v15.4.1) et JobClass (v14.4.0 à v14.4.1)
- v5.3.2 => LaraClassifier (v15.3.4 à v15.3.5) et JobClass (v14.3.4 à v14.3.5)
- v5.3.1 => LaraClassifier v15.3.0+ et JobClass v14.3.0+
- v5.3.0 => LaraClassifier v15.2.0 et JobClass v14.2.0
- v5.2.4 => LaraClassifier (v15.1.4 à v15.1.6) et JobClass (v14.1.4 à v14.1.6)
- v5.2.3 => LaraClassifier v15.1.4 et JobClass v14.1.4
- v5.2.2 => LaraClassifier v15.1.3 et JobClass v14.1.3
- v5.2.1 => LaraClassifier (v15.1.1 à v15.1.2) et JobClass (v14.1.1 à v14.1.2)
- v5.2.0 => LaraClassifier v15.1.0 et JobClass v14.1.0
- v5.1.0 => LaraClassifier v15.0.0 et JobClass v14.0.0
- v5.0.2 => LaraClassifier v14.2.0 et JobClass v13.2.0
- v5.0.1 => LaraClassifier (v14.0.2 à v14.1.0) et JobClass (v13.0.2 à v13.1.0)
- v5.0.0 => LaraClassifier (v14.0.0 à v14.0.1) et JobClass (13.0.0 à 13.0.1)
- v4.3 => LaraClassifier v13.0.0 et JobClass v12.0.0
- v4.2 => LaraClassifier (v12.1.0 à v12.2.4) et JobClass (v11.1.0 à v11.2.4)
- v4.1 => LaraClassifier (v12.1.0 à v12.2.4) et JobClass (v11.1.0 à v11.2.4)
- v4.0 => LaraClassifier (v12.0.0 à v12.0.2) et JobClass (v11.0.0 à v11.0.2)
- v3.9 => LaraClassifier (v11.0.2 à v11.0.4) et JobClass (v10.0.2 à v10.0.4)
- v3.8 => LaraClassifier (v11.0.0 à v11.0.1) et JobClass (v10.0.0 à v10.0.1)
- v3.7 => LaraClassifier (v10.2.1 à v11.0.1) et JobClass (v9.2.1 à v10.0.1)
- v3.6 => LaraClassifier (v10.2.0 à v10.2.6) et JobClass (v9.2.0 à v9.2.6)
- v3.5 => LaraClassifier v10.1.4 et JobClass v9.1.5
- v3.4 => LaraClassifier (v10.1.2 à v10.1.3) et JobClass (v9.1.3 à v9.1.4)
- v3.3 => LaraClassifier (v10.1.0 à v10.1.1) et JobClass (v9.1.0 à v9.1.2)
- v3.2 => LaraClassifier (v10.0.1 à v10.0.2) et JobClass (v9.0.1 à v9.0.3)
- v3.1 => LaraClassifier v10.0.1 et JobClass v9.0.1
- v3.0 => LaraClassifier v10.0.0 et JobClass v9.0.0
- v2.9 => LaraClassifier v9.0.1 et JobClass v8.0.1
- v2.8 => LaraClassifier v9.0.0 et JobClass v8.0.0
- v2.7 => LaraClassifier (v8.0.0 à v8.0.6) et JobClass (v7.0.0 à v7.0.6)
- v2.6 => LaraClassifier (v7.3.6 à v7.3.8) et JobClass (v6.1.6 à v6.1.8)
- v2.5 => LaraClassifier (v7.3.2 à v7.3.5) et JobClass (v6.1.2 à v6.1.5)
- v2.4 => LaraClassifier (v7.3.0 à v7.3.2) et JobClass (v6.1.0 à v6.1.2)
- v2.3 => LaraClassifier (v7.2.3 à v7.2.4) et JobClass (v6.0.3 à v6.0.4)
- v2.2 => LaraClassifier (v7.2.1 à v7.2.2) et JobClass (v6.0.1 à v6.0.2)
- v2.1 => LaraClassifier v7.2.0 et JobClass v6.0.0
- v2.0 => LaraClassifier (v7.1.0 à v7.1.1) et JobClass (v5.9.0 à v5.9.1)
- v1.9 => LaraClassifier v7.0.4 et JobClass v5.8.4
- v1.8 => LaraClassifier (v6.9 à v7.0.3) et JobClass (v5.7 à v5.8.3)
- v1.7 => LaraClassifier v6.8 et JobClass v5.6
- v1.6 => LaraClassifier (v6.6 à v6.7) et JobClass (v5.4 à v5.5)
- v1.5 => LaraClassifier v6.5 et JobClass v5.3
- v1.4 => LaraClassifier (v6.2 à v6.4) et JobClass (v5.0 à v5.2)
- v1.3 => LaraClassifier (v5.9 à v6.1) et JobClass (v4.7 à v4.9)
- v1.2 => LaraClassifier (v5.7 à v5.8) et JobClass (v4.5 à v4.6)
- v1.1 => LaraClassifier (v5.2 à v5.6) et JobClass (v4.0 à v4.4)
- v1.0 => LaraClassifier v5.1 et JobClass v3.9
Installation
Étape 1 : Téléverser l'add-on
Allez dans Panneau d'administration → Extensions → Add-ons, cliquez sur Téléverser un add-on et déposez le fichier .zip de l'add-on dans la zone de téléversement (50 Mo maximum).
L'archive est extraite dans extensions/addons/domainmapping/ et Domain Mapping apparaît dans la liste, désactivé.
extensions/addons/domainmapping/ par FTP ou SSH : son fichier addon.json doit se trouver directement dans ce dossier.
Ouvrez ensuite Panneau d'administration → Extensions → Add-ons. La page analyse extensions/addons/ à chaque chargement : l'add-on est donc listé immédiatement (le bouton Synchroniser lance la même analyse à la demande).
Étape 2 : Activer l'add-on
Cliquez sur Activer sur la carte Domain Mapping. C'est un add-on payant : une fenêtre demande son code d'achat, qui est vérifié avant toute autre opération. Un code invalide est refusé dans la fenêtre et rien n'est modifié.
Une fois le code accepté, l'activation se fait en une seule passe : elle crée les tables de base de données de l'add-on (ses migrations), enregistre ses permissions, exécute ses seeders et publie ses assets publics. Rechargez la page pour voir sa nouvelle entrée dans la section Add-ons de la barre latérale d'administration.
Étape 3 : Configurer
Ouvrez Panneau d'administration → Domain Mapping depuis la section Add-ons de la barre latérale et configurez l'add-on : voir Utilisation.
Code d'achat (clé de licence)
Domain Mapping est vendu comme un produit séparé : il possède donc son propre code d'achat (clé de licence), distinct du code d'achat de l'application principale et de celui de tout autre add-on. Il vous est demandé lorsque vous activez Domain Mapping dans Panneau d'administration → Extensions → Add-ons.
Nos produits sont vendus sur trois plateformes. La façon dont vous recevez un code d'achat dépend de l'endroit où vous avez acheté le produit.
| Plateforme / Marketplace | Comment vous obtenez le code d'achat | Où le retrouver |
|---|---|---|
| Boutique bedigit.com Achat sur le site (Boutique) |
Généré automatiquement lorsque la commande est payée, puis envoyé par e-mail, soit dans un e-mail de licence dédié, soit dans l'e-mail de confirmation de commande. | Mon compte → Mes licences sur bedigit.com |
| Gumroad | Créé dès que Gumroad nous notifie la vente, puis envoyé dans un e-mail séparé, en plus du reçu Gumroad. | L'e-mail de licence, votre Bibliothèque Gumroad, et Mon compte → Mes licences sur bedigit.com |
| Envato Market CodeCanyon |
Délivré par Envato, pas par nous, et jamais envoyé par e-mail : vous le téléchargez vous-même depuis votre compte Envato. | Compte Envato → Downloads → License certificate & purchase code |
1. Boutique bedigit.com (achat sur le site)
- Dès que le statut de paiement de la commande passe à Payée, une clé de licence est générée automatiquement pour chaque article sous licence de la commande (une clé par unité achetée : acheter 3 unités donne 3 clés distinctes).
- Elle est envoyée par e-mail à l'adresse utilisée pour la commande, soit dans un e-mail de licence dédié, soit dans l'e-mail de confirmation de commande. Vérifiez votre boîte de réception et votre dossier spam / courrier indésirable.
- La clé reste disponible dans votre compte sous Mon compte → Mes licences. Les clés sont masquées dans la liste ; ouvrez la page de détail de la licence pour afficher et copier la clé complète, voir les domaines sur lesquels elle est activée, et désactiver un domaine pour libérer un emplacement d'activation.
- La facture correspondante se trouve sous Mon compte → Mes commandes.
2. Gumroad
- Un achat sur Gumroad produit deux e-mails distincts : le reçu Gumroad (envoyé par Gumroad, donnant accès aux fichiers) et un e-mail de clé de licence (envoyé par bedigit.com) qui contient votre code d'achat.
- L'e-mail de clé de licence est généré dès que Gumroad nous notifie la vente ; il arrive donc normalement quelques secondes après le paiement. Ici aussi, vérifiez votre boîte de réception et votre dossier spam / courrier indésirable.
- Lorsque le produit Gumroad utilise la fonction de clé de licence propre à Gumroad, la même clé apparaît aussi dans votre reçu Gumroad et sous Bibliothèque → votre achat sur gumroad.com.
- Utilisez la même adresse e-mail sur bedigit.com que sur Gumroad : vos clés sont alors liées automatiquement à votre compte et listées sous Mon compte → Mes licences, même si vous vous inscrivez après l'achat. Vous pouvez aussi ajouter une clé Gumroad manuellement depuis Mon compte → Mes licences Gumroad.
3. Envato Market (CodeCanyon)
- Les codes d'achat Envato sont délivrés et fournis par Envato Market, jamais envoyés par e-mail par nos soins, il n'y a donc rien à chercher dans votre dossier spam : vous récupérez le code depuis votre compte Envato.
- Connectez-vous à votre compte Envato / CodeCanyon, ouvrez la page Downloads, trouvez l'article, puis choisissez License certificate & purchase code dans le menu déroulant Download. Le code est inscrit dans ce certificat.
- Un code d'achat Envato ressemble à
12345678-90ab-cdef-1234-567890abcdef(8-4-4-4-12 caractères). Il ne change jamais, et le renouvellement du support de l'article n'en délivre pas un nouveau. - Article officiel Envato : Where Is My Purchase Code?
Clé de licence, sous-domaines & domaines
Chaque clé de licence (celle de l'application principale, celle de Domain Mapping et celle de tout autre add-on ou thème) est validée par notre serveur de licences en fonction du domaine de votre site web. Avec Domain Mapping, une seule installation répond sur plusieurs hôtes ; voici donc comment ils sont comptés.
| Hôtes associés à vos pays | Comptés comme | Clés de licence nécessaires |
|---|---|---|
Sous-domaines de votre domaine principalexample.com, www.example.com, fr.example.com, de.example.com, … |
Un seul site web | Une clé par produit : votre clé LaraClassifier ou JobClass, votre clé Domain Mapping et la clé de chaque autre add-on couvrent tous ces hôtes, quel que soit l'hôte utilisé en premier. |
Domaines supplémentairesexample.fr, example.de, example-france.com, … |
Un site web par domaine | Une clé par produit et par domaine : chaque domaine supplémentaire a besoin de sa propre clé de licence pour LaraClassifier ou JobClass et pour chaque add-on ou thème que vous y utilisez, Domain Mapping compris. |
- Un sous-domaine est tout hôte qui se termine par votre domaine principal :
fr.example.cometwww.example.comappartiennent àexample.com;fr.example.co.ukappartient àexample.co.uk. Tout le reste est un domaine distinct. - Votre domaine principal est l'hôte de la variable
APP_URLde votre fichier/.env. Installez l'application et validez vos clés de licence depuis ce domaine. - Les clés d'un domaine supplémentaire se saisissent dans les paramètres propres à ce domaine : Panneau d'administration → Domain Mapping → Domains, bouton Settings du domaine, section App, champ Code d'achat.
- Vous pouvez voir les domaines sur lesquels chaque clé est activée, et libérer un emplacement, sous Mon compte → Mes licences sur bedigit.com.
fr.example.com, l'Allemagne sur de.example.com et l'Espagne sur
example.es a besoin d'un jeu de clés pour example.com (couvrant fr. et de.) et d'un second jeu de
clés pour example.es.
Mise à jour
Une mise à jour ne remplace que les fichiers de l'add-on. Ses tables et ses données, ses paramètres, son état d'activation et son code d'achat enregistré sont tous conservés : ne désactivez et ne supprimez pas l'add-on avant de le mettre à jour. Sauvegardez tout de même votre base de données au préalable.
Méthode 1 : Téléverser la nouvelle version (recommandé)
- Téléchargez le dernier fichier
.zipde l'add-on. - Allez dans Panneau d'administration → Extensions → Add-ons et cliquez sur Téléverser un add-on.
- Déposez le fichier
.zipdans la zone de téléversement. - Comme Domain Mapping est déjà installé, une demande de confirmation affiche la version installée et la nouvelle. Cliquez sur Remplacer : le dossier
extensions/addons/domainmapping/est remplacé par les nouveaux fichiers. Annuler la demande abandonne le téléversement.
Méthode 2 : Remplacer les fichiers à la main
- Par FTP ou SSH, supprimez le dossier
extensions/addons/domainmapping/et envoyez le nouveau à sa place. Remplacez le dossier entier plutôt que de copier par-dessus, afin que les fichiers retirés par la nouvelle version ne subsistent pas. - Ouvrez Panneau d'administration → Extensions → Add-ons : la page relit
addon.jsonet la carte affiche le nouveau numéro de version.
Une fois les fichiers remplacés
Appliquer la mise à jour de la base de données. Certaines versions de cet add-on fournissent une routine de mise à jour (migrations et corrections de données). Lorsque la nouvelle version en contient une, un bandeau Mises à jour disponibles apparaît dans le panneau d'administration. Allez dans Panneau d'administration → Système → Mises à jour, trouvez Domain Mapping dans Mises à jour des add-ons payants et cliquez sur Appliquer les mises à jour. Chaque version en attente est appliquée dans l'ordre et consignée dans l'historique des mises à jour. La routine n'est proposée que lorsque l'add-on est actif : si vous avez remplacé les fichiers d'un add-on désactivé, activez-le d'abord.
Si votre installation met en cache sa configuration ou ses routes (php artisan config:cache, route:cache), exécutez php artisan optimize:clear après la mise à jour.
Utilisation
L'add-on ajoute un menu Domain Mapping dans la section Add-ons de la barre latérale d'administration, avec les entrées Domains, Add domain et Paramètres.
Avant d'ajouter un domaine
- Créez un enregistrement A (IPv4) ou AAAA (IPv6) pour le domaine (ou sous-domaine) dans la zone DNS de votre fournisseur de domaine, pointant vers votre serveur.
INFO : Un enregistrement A, ou enregistrement AAAA, fait pointer un nom d'hôte vers une adresse IP. Il permet de faire pointer votre nom de domaine vers votre hébergeur web ou de créer des sous-domaines qui pointent directement vers une adresse IP. - Ajoutez le domaine (ou sous-domaine) dans le panneau de contrôle de votre hébergement (cPanel, Plesk, …) en tant qu'alias pointant vers le répertoire racine de votre site web (
public_htmlpar exemple).
Domaines
Allez dans Panneau d'administration → Domain Mapping → Domains et cliquez sur Add new, ou utilisez l'entrée de menu Domain Mapping → Add domain, qui ouvre le même formulaire. Vous ne pouvez ajouter qu'un seul domaine (ou sous-domaine) par pays, et un même hôte ne peut être utilisé qu'une fois.
| Champ | Description |
|---|---|
| Country | Le pays servi par ce domaine. |
| Host | Le domaine ou sous-domaine du pays, sans http:// ni https:// (par ex. fr.domain.com ou nouveaudomaine.fr). |
| HTTPS | Activez-le lorsque l'hôte est servi en HTTPS (il dispose d'un certificat SSL). |
| Active | Seuls les domaines actifs sont utilisés. |
Le bouton Bulk Create Sub-Domains crée un sous-domaine <code pays>.<domaine principal> (par ex. fr.example.com, HTTPS désactivé) pour chaque pays actif qui n'a pas encore de domaine. Le domaine principal est celui de la variable APP_URL de votre fichier /.env.
Lorsqu'un visiteur navigue sur le domaine principal avec un pays qui dispose de son propre domaine actif, il est redirigé vers ce domaine.
Pages par pays
Chaque ligne de la liste Domains propose trois boutons, sous Per-Country Pages, pour personnaliser le site servi sur ce domaine. Chaque page part des valeurs du site principal : cliquez sur son bouton Generate… pour les copier pour le domaine, puis modifiez la copie. Le bouton Remove… supprime la personnalisation et le domaine reprend les valeurs principales.
- Settings : copie, propre au domaine, des groupes de paramètres principaux (App, Listing form, Listings list, Mail, SMS, SEO, Localization, Security, Social auth, Social links, Pagination, Other), par exemple un nom de site, un logo ou une configuration e-mail différents.
- Homepage Sections : ordre, activation et options des sections de la page d'accueil, propres au domaine.
- Meta Tags : titres, descriptions et mots-clés SEO des pages, propres au domaine.
Paramètres
Allez dans Panneau d'administration → Domain Mapping → Paramètres.
| Champ | Description | Par défaut |
|---|---|---|
| Share session between sub-domains | Partage la session de connexion entre tous les sous-domaines du domaine principal (l'hôte de APP_URL). Une session ne peut pas être partagée entre deux domaines distincts. L'enregistrement d'un changement de cette option met à jour SESSION_DOMAIN et SESSION_COOKIE dans votre fichier /.env : tous les utilisateurs, vous compris, sont alors déconnectés. | Activé |
URL du Panneau d'administration
- Si vous avez activé le partage de session entre les sous-domaines, utilisez le Panneau d'administration via l'URL principale du fichier
/.envsuivie de/admin(APP_URL/admin). - Si vous avez désactivé le partage de session, le Panneau d'administration est accessible sur chaque domaine ou sous-domaine (par ex. us.domain.com/admin, fr.domain.com/admin, ...).
Facultatif : liste des pays comme page d'accueil
- Cet add-on peut afficher la page de la liste des pays comme page d'accueil du domaine principal. Pour cela, définissez la variable
DM_COUNTRIES_LIST_AS_HOMEPAGEdu fichier/.envàtrue(ajoutez-la si elle n'existe pas dans votre fichier/.env). L'option ne fonctionne que lorsque l'add-on Domain Mapping est activé.
Le domaine principal (l'hôte de la variableAPP_URL) affiche alors la liste des pays à sa racine, et, sur les domaines des pays, les liens vers la liste des pays pointent vers cette page d'accueil.
NOTE : Définissez un domaine (ou sous-domaine) pour chaque pays (par ex. example.de, fr.example.com, ...) afin que le domaine principal (celui de la variableAPP_URLde votre fichier/.env, par ex. example.com) puisse afficher la page de la liste des pays comme page d'accueil.
Traduction
Pour traduire cet add-on dans votre langue :
- Allez dans le répertoire des langues de l'add-on, dans
/extensions/addons/domainmapping/resources/lang/de l'application principale - Dupliquez le dossier
/extensions/addons/domainmapping/resources/lang/en/vers/extensions/addons/domainmapping/resources/lang/<code>/
NOTE : N'oubliez pas de remplacer<code>par le code de votre langue (par ex. « de » pour l'allemand). - Ouvrez le fichier
/extensions/addons/domainmapping/resources/lang/<code>/messages.phpet traduisez-le.
NOTE : Pour traduire le fichier, vous devez modifier les valeurs et non les clés du tableau PHP.
Désinstallation
Éteindre un add-on sans rien perdre, c'est le désactiver : allez dans Panneau d'administration → Extensions → Add-ons, cliquez sur Désactiver sur la carte Domain Mapping et confirmez.
- L'add-on n'est plus chargé : ses routes, ses vues, son entrée dans la barre latérale d'administration et ses pages publiques ne répondent plus.
- Ses tables de base de données et toutes les données qu'elles contiennent sont conservées, et ses fichiers restent dans
extensions/addons/domainmapping/. Rien n'est supprimé. - Ses permissions et son code d'achat enregistré restent en base de données. Seule la suppression les efface.
- La désactivation est refusée tant qu'un autre add-on actif dépend de celui-ci : désactivez d'abord cet add-on.
Cliquez sur Activer sur la même carte pour le rallumer. Comme lors de la première activation, le code d'achat est redemandé et vérifié ; ensuite les migrations en attente sont exécutées, les assets republiés, et l'add-on reprend exactement là où il s'était arrêté.
Suppression
La suppression est définitive et détruit les données de l'add-on. Le bouton Supprimer n'apparaît que sur un add-on désactivé : la suppression se fait donc toujours en deux temps :
- Désactivez Domain Mapping (voir Désinstallation).
- Cliquez sur Supprimer sur sa carte et confirmez la demande.
Le panneau d'administration, en une seule passe :
- exécute le hook de désinstallation de l'add-on, s'il en fournit un, tant que son code est encore sur le disque ;
- révoque les permissions déclarées dans son
addon.json; - annule ses migrations, ce qui supprime ses tables de base de données et toutes les lignes qu'elles contiennent, et purge ses entrées de la table
migrations, afin qu'une réinstallation ultérieure reparte de zéro ; - supprime ses assets publiés :
public/addons/domainmapping/,public/vendor/domainmapping/etstorage/app/public/addons/domainmapping/; - supprime le dossier de l'add-on
extensions/addons/domainmapping/; - supprime sa ligne dans la table
addons(le code d'achat enregistré disparaît avec elle) et vide le cache de l'application.
La suppression est refusée, avec un message explicatif et avant toute destruction, lorsque l'add-on est encore actif, lorsqu'un autre add-on actif en dépend, ou lorsque l'utilisateur du serveur web (PHP) ne peut pas supprimer extensions/addons/domainmapping/. Dans ce dernier cas, donnez à cet utilisateur le droit d'écriture sur le dossier et sur son parent, puis réessayez.
Supprimer le dossier en FTP ou en SSH n'est pas équivalent : l'add-on est seulement éteint, et ses tables, ses entrées dans la table migrations et sa ligne addons restent en place. Utilisez plutôt Supprimer dans le panneau d'administration.