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

WARNING
Certains Projets Pro nécessitent un ticket de support pour mettre à jour la configuration de l’itinéraire dans la variable 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 et example1.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/
NOTE
Si votre projet Cloud prend en charge plusieurs magasins, suivez les instructions de configuration d’itinéraire pour plusieurs sites web ou magasins ;.

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
TIP
Il est recommandé d’utiliser une barre oblique pour les répertoires, mais quelle que soit la méthode choisie, il est important de rester cohérent pour éviter de générer deux emplacements.

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 :

Propriété
Description
type: upstream
Diffuse une application. Il comporte également une 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
Redirige vers un autre itinéraire. Il est suivi de la fonction to , qui est une redirection HTTP vers un autre itinéraire identifié par son modèle.
cache:
Contrôles mise en cache de l’itinéraire.
redirects:
Contrôles règles de redirection.
ssi:
Contrôle de l’activation de Inclusions côté serveur.

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
recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26