Configuration des itinéraires
La variable routes.yaml
dans le fichier .magento/routes.yaml
définit les itinéraires de votre Adobe Commerce dans les environnements d’intégration, d’évaluation et de production de l’infrastructure cloud. Les itinéraires déterminent la manière dont l’application traite les requêtes HTTP et HTTPS entrantes.
Par défaut routes.yaml
Le fichier spécifie les modèles d’itinéraire pour le traitement des requêtes HTTP au format HTTPS sur les projets ayant un seul domaine par défaut et sur les projets configurés pour plusieurs domaines :
"http://{default}/":
type: upstream
upstream: "mymagento:http"
"http://{all}/":
type: upstream
upstream: "mymagento:http"
Utilisez la variable magento-cloud
Interface en ligne de commande pour afficher la liste des itinéraires configurés :
magento-cloud environment:routes
+-------------------+----------+---------------+
| Route | Type | To |
+-------------------+----------+---------------+
| http://{default}/ | upstream | mymagento |
+-------------------+----------+---------------+
Mises à jour de configuration des environnements Pro
routes.yaml
et la configuration cron dans le fichier .magento.app.yaml
fichier . Adobe recommande de mettre à jour et de tester les fichiers de configuration YAML dans un environnement d’intégration, puis de déployer les modifications dans l’environnement d’évaluation. Si vos modifications ne sont pas appliquées aux sites d’évaluation après le redéploiement et qu’il n’y a aucun message d’erreur associé dans le journal, alors vous DOMAINE Envoi d’un ticket d’assistance Adobe Commerce qui décrit les modifications de configuration tentées. Incluez tous les fichiers de configuration YAML mis à jour dans le ticket.Modèles d’itinéraire
La variable routes.yaml
est une liste d’itinéraires modélisés et de leurs configurations. Vous pouvez utiliser les espaces réservés suivants dans les modèles d’itinéraire :
-
La variable
{default}
placeholder représente le nom de domaine qualifié configuré par défaut pour le projet.Par exemple, un projet avec le domaine par défaut
example.com
et les modèles d’itinéraire suivants :code language-text https://www.{default}/ https://{default}/blog
Ces modèles se résolvent par les URL suivantes dans un environnement de production :
code language-text https://www.example.com/ https://example.com/blog
-
La variable
{all}
espace réservé représente tous les noms de domaine configurés pour le projet.Par exemple, un projet avec
example.com
etexample1.com
domaines avec les modèles d’itinéraire suivants :code language-text https://www.{all}/ https://{all}/blog
Ces modèles se résolvent par les itinéraires suivants pour tous les domaines du projet :
code language-text https://www.example.com/ https://www.example1.com/ https://example.com/blog https://example1.com/blog
La variable
{all}
espace réservé est utile pour les projets configurés pour plusieurs domaines. Dans une branche hors production,{all}
est remplacé par l’ID de projet et l’ID d’environnement pour chaque domaine.Si aucun domaine n’est configuré pour un projet, ce qui est courant pendant le développement, la variable
{all}
se comporte de la même manière que le{default}
espace réservé.
Adobe Commerce génère également des itinéraires pour chaque environnement d’intégration actif. Pour les environnements d’intégration, la variable {default}
L’espace réservé est remplacé par le nom de domaine suivant :
[branch]-[per-environment-random-string]-[project-id].[region].magentosite.cloud
Par exemple, la variable refactorcss
pour la mswy7hzcuhcjw
hébergé dans le us
La grappe possède le domaine suivant :
https://refactorcss-oy3m2pq-mswy7hzcuhcjw.us.magentosite.cloud/
Barre oblique
Les définitions d’itinéraire contiennent une barre oblique pour indiquer un dossier ou un répertoire. Toutefois, le même contenu peut être diffusé avec ou sans barre oblique. Les URL suivantes résolvent le même problème, mais peuvent être interprétées comme deux différents URL :
https://www.example.com/blog/
https://www.example.com/blog
Protocoles d’itinéraire
Tous les environnements prennent automatiquement en charge les protocoles HTTP et HTTPS.
-
Si la configuration spécifie uniquement l’itinéraire HTTP, les itinéraires HTTPS sont créés automatiquement, ce qui permet au site d’être diffusé à partir de HTTP et HTTPS sans nécessiter de redirections.
Par exemple, un projet avec le domaine par défaut
example.com
et le modèle d’itinéraire suivant :code language-text http://{default}/
Ce modèle résout les URL suivantes :
code language-text http://example.com/ https://example.com/
-
Si la configuration spécifie uniquement l’itinéraire HTTPS, toutes les requêtes HTTP redirigent vers HTTPS.
Par exemple, un projet avec le domaine par défaut
example.com
avec le modèle d’itinéraire suivant :code language-text https://{default}/
Ce modèle résout l’URL suivante :
code language-text https://example.com/
Il traite également la redirection suivante :
http://example.com/
==>https://example.com/
Servez toutes les pages sur TLS. Pour cette configuration, vous devez configurer des redirections pour toutes les requêtes non chiffrées vers l’équivalent TLS à l’aide de l’une des méthodes suivantes :
-
Remplacez le protocole par HTTPS dans la variable
routes.yaml
fichier .code language-yaml "https://{default}/": type: upstream upstream: "mymagento:http" "https://{all}/": type: upstream upstream: "mymagento:http"
-
Pour les environnements d’évaluation et de production, activez l’option Forcer TLS sur Fastly dans l’interface utilisateur d’administration. Lorsque vous utilisez cette option, gère rapidement la redirection vers HTTPS, de sorte que vous n’avez pas à mettre à jour la variable
routes.yaml
configuration.
Options d’itinéraire
Configurez séparément chaque itinéraire à l’aide des propriétés suivantes :
type: upstream
upstream
qui spécifie le nom de l’application (tel que défini dans .magento.app.yaml
), suivie de la fonction :http
point de terminaison .type: redirect
to
, qui est une redirection HTTP vers un autre itinéraire identifié par son modèle.cache:
redirects:
ssi:
Itinéraires simples
Dans les exemples suivants, la configuration de l’itinéraire achemine le domaine apex et le www
sous-domaine vers mymagento
application. Cet itinéraire ne redirige pas les demandes HTTPS.
Exemple 1 :
"http://{default}/":
type: upstream
upstream: "mymagento:http"
"http://www.{default}/":
type: redirect
to: "http://{default}/"
Dans cet exemple, le routage des demandes suit ces règles :
-
Le serveur répond directement aux requêtes avec le modèle d’URL suivant :
code language-text http://example.com/path
-
Le serveur émet un Redirection 301 pour les requêtes avec le modèle d’URL suivant :
code language-text http://www.example.com/mypath
Ces requêtes redirigent vers le domaine apex, par exemple :
code language-text http://example.com/mypath
Dans l’exemple suivant, la configuration de l’itinéraire ne redirige pas les URL du domaine www vers le domaine apex. Au lieu de cela, les requêtes sont diffusées à partir des domaines www et apex.
Exemple 2 :
"http://{default}/":
type: upstream
upstream: "mymagento:http"
"http://www.{default}/":
type: upstream
upstream: "mymagento:http"
Itinéraires génériques
Adobe Commerce sur l’infrastructure cloud prend en charge les itinéraires génériques, de sorte que vous pouvez mapper plusieurs sous-domaines à la même application. Cela fonctionne pour les itinéraires de redirection et en amont. Vous ajoutez un astérisque (*) à l’itinéraire. Par exemple, les itinéraires suivants vers la même application :
*.example.com
www.example.com
blog.example.com
us.example.com
Cela fonctionne comme un domaine fourre-tout dans un environnement en ligne.
Routage d’un domaine non mappé
Vous pouvez acheminer vers un système qui n’est pas mappé à un domaine à l’aide d’un point (.
) pour séparer le sous-domaine.
Exemple :
Un projet avec une add-theme
branche achemine vers l’URL suivante :
http://add-theme-projectID.us.magento.com/
Si vous définissez le modèle d’itinéraire suivant :
http://www.{default}/
L’itinéraire correspond à l’URL suivante :
http://www.add-theme-projectID.us.magento.com/
Vous pouvez insérer n’importe quel sous-domaine avant que le point et l’itinéraire ne soient résolus.
Exemple :
Définissez le modèle d’itinéraire suivant :
http://*.{default}/
Ce modèle résout les deux URL suivantes :
http://foo.add-theme-projectID.us.magentosite.cloud/
http://bar.add-theme-projectID.us.magentosite.cloud/
Vous pouvez afficher le modèle d’itinéraire pour les domaines non mappés en établissant une connexion SSH à l’environnement et en utilisant la variable magento-cloud
Interface de ligne de commande pour répertorier les itinéraires :
web@mymagento.0:~$ vendor/bin/ece-tools env:config:show routes
Magento Cloud Routes:
+------------------------------------------+--------------------------------------------------------------+
| Route configuration | Value |
+------------------------------------------+--------------------------------------------------------------+
| http://www.add-theme-projectID.us.magento.com/: |
+------------------------------------------+--------------------------------------------------------------+
| primary | false |
| id | null |
| attributes | |
| type | upstream |
| to | mymagento |
| original_url | https:/{default}/ |
+------------------------------------------+--------------------------------------------------------------+
| https://*.add-theme-projectID.us.magentosite.cloud/: |
+------------------------------------------+--------------------------------------------------------------+
| primary | false |
| id | null |
| attributes | |
| type | upstream |
| to | mymagento |
| original_url | https://*.{default}/ |
+------------------------------------------+--------------------------------------------------------------+
Redirections et mise en cache
Comme décrit plus en détail Redirections, vous pouvez gérer des règles de redirection complexes, telles que redirections partielles et spécifier des règles pour les itinéraires mise en cache:
https://www.{default}/:
type: redirect
to: https://{default}/
https://{default}/:
cache:
cookies: [""]
default_ttl: 0
enabled: true
headers:
- Accept
- Accept-Language
ssi:
enabled: false
type: upstream
upstream: mymagento:http