Routen konfigurieren

Die Datei "routes.yaml"im Ordner ".magento/routes.yaml"definiert Routen für Ihre Adobe Commerce in Cloud-Infrastruktur-Integrations-, Staging- und Produktionsumgebungen. Routen bestimmen, wie die Anwendung eingehende HTTP- und HTTPS-Anforderungen verarbeitet.

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

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

Verwenden Sie die CLI magento-cloud , 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 Datei routes.yaml und die Cron-Konfiguration in der Datei .magento.app.yaml zu aktualisieren. Adobe empfiehlt, die YAML-Konfigurationsdateien in einer Integrationsumgebung zu aktualisieren und zu testen und anschließend Änderungen in der Staging-Umgebung bereitzustellen. Wenn Ihre Änderungen nach der erneuten Bereitstellung nicht auf Staging-Sites angewendet werden und keine zugehörigen Fehlermeldungen im Protokoll vorhanden sind, senden Sie ein Adobe Commerce-Supportticket 🔗, in dem die versucht wurde, die Konfigurationsänderungen zu beschreiben. ​Schließen Sie alle aktualisierten YAML-Konfigurationsdateien in das Ticket ein.

Routenvorlagen

Die Datei "routes.yaml" ist eine Liste mit Vorlagenrouten und ihren Konfigurationen. Sie können die folgenden Platzhalter in Routenvorlagen verwenden:

  • Der Platzhalter {default} stellt den qualifizierten Domänennamen dar, der als Standard für das Projekt konfiguriert wurde.

    Beispiel: ein Projekt mit der Standarddomäne example.com und den folgenden Routenvorlagen:

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

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

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

    Beispiel: ein Projekt mit den Domänen example.com und example1.com mit den folgenden Routenvorlagen:

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

    Diese Vorlagen werden für alle Domänen 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 Platzhalter {all} ist für Projekte nützlich, die für mehrere Domänen konfiguriert sind. In einer Nicht-Produktions-Verzweigung wird {all} durch die Projekt-ID und die Umgebungs-ID für jede Domäne ersetzt.

    Wenn für ein Projekt keine Domänen konfiguriert sind, was bei der Entwicklung üblich ist, verhält sich der Platzhalter {all} genauso wie der Platzhalter {default} .

Adobe Commerce generiert außerdem Routen für jede aktive Integrationsumgebung. In Integrationsumgebungen wird der Platzhalter {default} durch den folgenden Domänennamen ersetzt:

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

Die Verzweigung refactorcss für das im us-Cluster gehostete mswy7hzcuhcjw-Projekt weist beispielsweise die folgende Domäne auf:

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

Schrägstrich

Routendefinitionen enthalten einen Schrägstrich, der einen Ordner oder Ordner angibt. Derselbe Inhalt kann jedoch mit oder ohne Schrägstrich bedient werden. Die folgenden URLs lösen die gleichen auf, können jedoch als zwei verschiedene URLs interpretiert werden:

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

https://www.example.com/blog
TIP
Es empfiehlt sich, einen Schrägstrich für Verzeichnisse zu verwenden. Bei jeder beliebigen Methode ist es jedoch wichtig, konsistent zu bleiben, um zu verhindern, dass zwei Speicherorte generiert werden.

Routenprotokolle

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

  • Wenn in der Konfiguration nur die HTTP-Route angegeben wird, werden automatisch HTTPS-Routen erstellt, sodass die Site sowohl über HTTP als auch über HTTPS bereitgestellt werden kann, ohne dass Umleitungen erforderlich sind.

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

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

    Diese Vorlage wird zu den folgenden URLs aufgelöst:

    code language-text
    http://example.com/
    
    https://example.com/
    
  • Wenn die Konfiguration nur die HTTPS-Route angibt, werden alle HTTP-Anforderungen zu 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/

Servieren Sie alle Seiten über TLS. Für diese Konfiguration müssen Sie Umleitungen für alle unverschlüsselten Anforderungen mit einer der folgenden Methoden an die TLS-Entsprechung konfigurieren:

  • Ändern Sie das Protokoll in der Datei routes.yaml 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 auf Schnell erzwingen in der Admin-Benutzeroberfläche. Wenn Sie diese Option verwenden, verarbeitet die Umleitung schnell zu HTTPS, sodass Sie die routes.yaml -Konfiguration nicht aktualisieren müssen.

Routenoptionen

Konfigurieren Sie die einzelnen Routen separat mit den folgenden Eigenschaften:

Eigenschaft
Beschreibung
type: upstream
Stellt eine Anwendung bereit. Außerdem verfügt es über eine Eigenschaft upstream , die den Namen der Anwendung (wie in .magento.app.yaml definiert) gefolgt vom Endpunkt :http angibt.
type: redirect
Leitet zu einer anderen Route um. Anschließend folgt die Eigenschaft to , bei der es sich um eine HTTP-Weiterleitung zu einer anderen durch die Vorlage identifizierten Route handelt.
cache:
Steuert die Zwischenspeicherung für die Route.
redirects:
Steuert Umleitungsregeln.
ssi:
Steuerelemente zum Aktivieren von Server Side Includes.

Einfache Routen

In den folgenden Beispielen leitet die Routenkonfiguration die Apex-Domäne und die www-Subdomäne an die mymagento-Anwendung weiter. Diese Route leitet keine HTTPS-Anforderungen weiter.

Beispiel 1:

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

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

In diesem Beispiel folgt das Anfrage-Routing den folgenden Regeln:

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

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

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

    Diese Anfragen werden an die Apex-Domäne weitergeleitet, z. B.:

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

Im folgenden Beispiel leitet die Routenkonfiguration keine URLs von der Domäne www zur Apex-Domäne weiter. Stattdessen werden Anforderungen sowohl von der www- als auch von der apex-Domäne bereitgestellt.

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 Subdomänen derselben Anwendung zuordnen können. Dies funktioniert bei Umleitungs- und Upstream-Routen. Der Route wird ein Sternchen (*) vorangestellt. Beispielsweise werden die folgenden Routen zu derselben Anwendung geleitet:

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

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

Routing einer nicht zugeordneten Domäne

Sie können über einen Punkt (.) zu einem System weiterleiten, das keiner Domäne zugeordnet ist, um die Subdomain zu trennen.

Beispiel:

Ein Projekt mit dem Zweig add-theme leitet zu der folgenden URL weiter:

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

Wenn Sie die folgende Routenvorlage definieren:

http://www.{default}/

Die Route wird zu der folgenden URL aufgelöst:

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

Sie können jede Subdomäne einfügen, bevor der Punkt und die Route aufgelöst werden.

Beispiel:

Definieren Sie die folgende Routenvorlage:

http://*.{default}/

Diese Vorlage löst beide der 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 Domänen anzeigen, indem Sie eine SSH-Verbindung zur Umgebung herstellen und die Routen mithilfe der CLI magento-cloud auflisten:

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 ausführlicher unter Umleitungen erläutert, können Sie komplexe Umleitungsregeln verwalten, wie z. B. partielle Umleitungen, und Regeln für die routen basierten Caching festlegen:

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