Konfigurieren von Routen

Die routes.yaml im .magento/routes.yaml definiert Routen für Ihre Adobe Commerce in Cloud-Infrastrukturintegrations-, Staging- und Produktionsumgebungen. Routen bestimmen, wie die Anwendung eingehende HTTP- und HTTPS-Anfragen verarbeitet.

Die standardmäßige routes.yaml gibt die Routenvorlagen für die Verarbeitung von HTTP-Anfragen als HTTPS für Projekte an, die eine einzelne Standarddomäne haben, und für Projekte, die für mehrere Domains konfiguriert sind:

"http://{default}/":
    type: upstream
    upstream: "mymagento:http"
"http://{all}/":
    type: upstream
    upstream: "mymagento:http"

Verwenden Sie die magento-cloud CLI, um eine Liste der konfigurierten Routen anzuzeigen:

magento-cloud environment:routes

+-------------------+----------+---------------+
| Route             | Type     | To            |
+-------------------+----------+---------------+
| http://{default}/ | upstream | mymagento     |
+-------------------+----------+---------------+

Konfigurationsaktualisierungen für Pro-Umgebungen

WARNING
Einige Pro-Projekte benötigen ein Support-Ticket, um die Routenkonfiguration in der routes.yaml-Datei und die Cron-Konfiguration in der .magento.app.yaml-Datei zu aktualisieren. Adobe empfiehlt, YAML-Konfigurationsdateien in einer Integrationsumgebung zu aktualisieren und zu testen und dann Änderungen in der Staging-Umgebung bereitzustellen. Wenn Ihre Änderungen nach der erneuten Bereitstellung nicht auf Staging-Sites angewendet werden und es keine entsprechenden Fehlermeldungen im Protokoll gibt, Sie MÜSSEN ein Adobe Commerce-Support-Ticket, das die versuchten Konfigurationsänderungen beschreibt. Schließen Sie alle aktualisierten YAML-Konfigurationsdateien in das Ticket ein.

Routenvorlagen

Die routes.yaml-Datei ist eine Liste von Routenvorlagen und deren Konfigurationen. Sie können die folgenden Platzhalter in Routenvorlagen verwenden:

  • Der {default} Platzhalter stellt den qualifizierten Domain-Namen dar, der als Standard für das Projekt konfiguriert ist.

    Beispiel: ein Projekt mit dem Standard-Domain-example.com und den folgenden Routenvorlagen:

    code language-text
    https://www.{default}/
    https://{default}/blog
    

    Diese Vorlagen werden in einer Produktionsumgebung in die folgenden URLs aufgelöst:

    code language-text
    https://www.example.com/
    https://example.com/blog
    
  • Der {all} Platzhalter stellt alle für das Projekt konfigurierten Domain-Namen dar.

    Beispiel: ein Projekt mit example.com und example1.com Domains mit den folgenden Routenvorlagen:

    code language-text
    https://www.{all}/
    
    https://{all}/blog
    

    Diese Vorlagen werden für alle Domains im Projekt in die folgenden Routen aufgelöst:

    code language-text
    https://www.example.com/
    
    https://www.example1.com/
    
    https://example.com/blog
    
    https://example1.com/blog
    

    Der {all} Platzhalter ist für Projekte nützlich, die für mehrere Domains konfiguriert sind. In einer produktionsfremden Verzweigung wird {all} für jede Domain durch die Projekt-ID und die Umgebungs-ID ersetzt.

    Wenn für ein Projekt keine Domains konfiguriert sind, was während der Entwicklung häufig vorkommt, verhält sich der {all} Platzhalter wie der {default} Platzhalter.

Adobe Commerce generiert auch Routen für jede aktive Integrationsumgebung. Bei Integrationsumgebungen wird der Platzhalter {default} durch den folgenden Domain-Namen ersetzt:

[branch]-[per-environment-random-string]-[project-id].[region].magentosite.cloud

Beispielsweise hat die refactorcss Verzweigung für das im us Cluster gehostete mswy7hzcuhcjw-Projekt die folgende Domain:

https://refactorcss-oy3m2pq-mswy7hzcuhcjw.us.magentosite.cloud/
NOTE
Wenn Ihr Cloud-Projekt mehrere Stores unterstützt, befolgen Sie die Anweisungen zur Routenkonfiguration für mehrere Websites oder Stores.

Schrägstrich

Routendefinitionen enthalten einen Schrägstrich, der auf einen Ordner oder ein Verzeichnis hinweist. Derselbe Inhalt kann jedoch mit oder ohne Schrägstrich bereitgestellt werden. Die folgenden URLs lösen dasselbe auf, können jedoch als zwei verschiedene URLs interpretiert werden:

https://www.example.com/blog/

https://www.example.com/blog
TIP
Es empfiehlt sich, für Ordner einen Schrägstrich als Platzhalter zu verwenden. Unabhängig von der gewählten Methode ist es jedoch wichtig, "" generieren, um zwei Speicherorte zu vermeiden.

Routenprotokolle

Alle Umgebungen unterstützen automatisch sowohl HTTP als auch HTTPS.

  • Wenn die Konfiguration nur die HTTP-Route angibt, werden HTTPS-Routen automatisch erstellt, sodass die Site sowohl von HTTP als auch von HTTPS bedient werden kann, ohne dass Umleitungen erforderlich sind.

    Beispiel: ein Projekt mit der Standard-Domain example.com und der folgenden Routenvorlage:

    code language-text
    http://{default}/
    

    Diese Vorlage wird in die folgenden URLs aufgelöst:

    code language-text
    http://example.com/
    
    https://example.com/
    
  • Wenn die Konfiguration nur die HTTPS-Route angibt, werden alle HTTP-Anfragen an HTTPS umgeleitet.

    Beispiel: Ein Projekt mit der Standarddomäne example.com mit der folgenden Routenvorlage:

    code language-text
    https://{default}/
    

    Diese Vorlage wird in die folgende URL aufgelöst:

    code language-text
    https://example.com/
    

    Außerdem wird die folgende Umleitung verarbeitet:

    http://example.com/ ==> https://example.com/

Bereitstellen aller Seiten über TLS. Für diese Konfiguration müssen Sie mithilfe einer der folgenden Methoden Umleitungen für alle unverschlüsselten Anfragen an das TLS-Äquivalent konfigurieren:

  • Ändern Sie in der routes.yaml-Datei das Protokoll in HTTPS .

    code language-yaml
    "https://{default}/":
        type: upstream
        upstream: "mymagento:http"
    "https://{all}/":
        type: upstream
        upstream: "mymagento:http"
    
  • Aktivieren Sie für Staging- und Produktionsumgebungen die Option TLS bei Fastly erzwingen über die Admin-Benutzeroberfläche. Wenn Sie diese Option verwenden, übernimmt Fastly die Umleitung zu HTTPS, sodass Sie die routes.yaml nicht aktualisieren müssen.

Routenoptionen

Konfigurieren Sie jede Route separat anhand der folgenden Eigenschaften:

Eigenschaft
Beschreibung
type: upstream
Bedient eine Anwendung. Außerdem verfügt es über eine upstream-Eigenschaft, die den Namen des Programms (wie in .magento.app.yaml definiert) gefolgt vom :http-Endpunkt angibt.
type: redirect
Leitet zu einer anderen Route um. Darauf folgt die to-Eigenschaft, die eine HTTP-Umleitung zu einer anderen Route darstellt, die durch ihre Vorlage identifiziert wird.
cache:
Steuert Zwischenspeicherung für die Route.
redirects:
Steuerelemente Umleitungsregeln.
ssi:
Steuerelemente zum Aktivieren von Server Side Includes.

Einfache Routen

In den folgenden Beispielen leitet die Routenkonfiguration die Apex-Domain und die www Subdomain an die mymagento App weiter. Diese Route leitet keine HTTPS-Anfragen um.

Beispiel 1:

"http://{default}/":
    type: upstream
    upstream: "mymagento:http"

"http://www.{default}/":
    type: redirect
    to: "http://{default}/"

In diesem Beispiel folgt das Anfrage-Routing diesen Regeln:

  • Der Server antwortet direkt auf Anfragen mit dem folgenden URL-Muster:

    code language-text
    http://example.com/path
    
  • Der Server gibt eine 301-Umleitung für Anfragen mit dem folgenden URL-Muster aus:

    code language-text
    http://www.example.com/mypath
    

    Diese Anfragen werden an die Apex-Domain weitergeleitet, z. B.:

    code language-text
    http://example.com/mypath
    

Im folgenden Beispiel leitet die Routenkonfiguration URLs von der Domain www nicht zur Apex-Domain um. Stattdessen werden Anfragen sowohl von der www- als auch von der apex-Domain gesendet.

Beispiel 2:

"http://{default}/":
    type: upstream
    upstream: "mymagento:http"

"http://www.{default}/":
    type: upstream
    upstream: "mymagento:http"

Platzhalterrouten

Adobe Commerce in der Cloud-Infrastruktur unterstützt Platzhalterrouten, sodass Sie mehrere Subdomains derselben Anwendung zuordnen können. Dies funktioniert für Umleitungs- und Upstream-Routen. Der Route wird ein Sternchen (*) vorangestellt. Beispielsweise werden die folgenden Elemente an dasselbe Programm weitergeleitet:

  • *.example.com
  • www.example.com
  • blog.example.com
  • us.example.com

Dies fungiert als Sammeldomäne in einer Live-Umgebung.

Weiterleiten einer nicht zugeordneten Domain

Sie können ein System, das keiner Domain zugeordnet ist, über einen Punkt (.) weiterleiten, um die Subdomain zu trennen.

Beispiel:

Ein Projekt mit einer add-theme Verzweigung wird an die folgende URL weitergeleitet:

http://add-theme-projectID.us.magento.com/

Wenn Sie die folgende Routenvorlage definieren:

http://www.{default}/

Die Route wird zur folgenden URL aufgelöst:

http://www.add-theme-projectID.us.magento.com/

Sie können eine beliebige Subdomain einfügen, bevor der Punkt und die Route aufgelöst werden.

Beispiel:

Definieren Sie die folgende Routenvorlage:

http://*.{default}/

Diese Vorlage löst die beiden folgenden URLs auf:

http://foo.add-theme-projectID.us.magentosite.cloud/
http://bar.add-theme-projectID.us.magentosite.cloud/

Sie können das Routenmuster für nicht zugeordnete Domains anzeigen, indem Sie eine SSH-Verbindung zur -Umgebung herstellen und die magento-cloud-CLI zum Auflisten der Routen verwenden:

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}/                                         |
+------------------------------------------+--------------------------------------------------------------+

Umleitungen und Caching

Wie unter Umleitungen ausführlicher erläutert, können Sie komplexe Umleitungsregeln wie partielle Umleitungen verwalten und Regeln für routenbasierte Caching):

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
7c2b03ac-000c-497d-aba3-2c6dc720a938