> ## Documentation Index
> Fetch the complete documentation index at: https://dokumentation.websale.de/llms.txt
> Use this file to discover all available pages before exploring further.

# URL- (Internetadresse)

> Die Adressen des Shops im Template ausgeben: Hauptdomain, SSL-Domain, Shopverzeichnis und der Pfad des aktuellen Templates, dazu die Parameter des laufenden Aufrufs.

Ein Template weiß nicht, unter welcher Adresse es gerade ausgeliefert wird. Es kann über mehrere Domains erreichbar sein, über HTTP oder über HTTPS, und es liegt in einem Verzeichnis, dessen Pfad sich je nach Shop unterscheidet. Für Links, für das `base`-Element und für eingebundene Dateien braucht es diese Angaben aber.

Die `URL-`Tags liefern sie. Vier beschreiben Adressen des Shops, drei weitere geben Auskunft über die Parameter, mit denen die aktuelle Seite aufgerufen wurde.

## Die Adressen des Shops

| Tag | Liefert |
| - | - |
| `URL-Homepage` | die Hauptdomain des Shops, mit Protokoll |
| `URL-SSLDomain` | die SSL-Domain, mit Protokoll |
| `URL-Shop` | das Wurzelverzeichnis des Shops auf dem Webserver |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<a href="~URL-Homepage~">Zur Startseite</a>
```

`URL-Homepage` liefert eine vollständige Adresse einschließlich Protokoll, beispielsweise `https://www.meinshop.de`. Das Tag ist dann wertvoll, wenn der Shop über mehrere Domains erreichbar ist, alle Links aber auf eine davon zeigen sollen. Ohne dieses Tag landet ein Besucher, der über eine Nebendomain gekommen ist, auch bei allen weiteren Aufrufen dort.

Die Hauptdomain legt der Parameter `Domain-!` im Abschnitt `Basic` der Shopkonfiguration fest.

> [!WARNING]
>
> `URL-SSLDomain` greift zusätzlich als Klammerung, nämlich dann, wenn eine SSL-Domain eingetragen ist. Die Klammerung ist nützlich, denn ohne eingetragene SSL-Domain gibt das Tag nichts aus, und ein `href` mit leerer Adresse führt auf die aktuelle Seite zurück.

Die SSL-Domain trägt die Systemadministration der WEBSALE AG ein, nicht der Designer, denn sie gehört zum SSL-Zertifikat. Sie muss zur Hauptdomain passen: Zu `xyz.de` gehört `https://xyz.de`, zu `www.xyz.de` gehört `https://www.xyz.de`. Empfohlen ist die Form mit `www`.

`URL-Shop` liefert den vollständigen Pfad zum Shopverzeichnis, also Domain, Zwischenverzeichnisse und das Verzeichnis mit der Shop-Kennung. Es richtet sich dabei nach dem aktuellen Aufruf: Läuft dieser über HTTPS, baut das Tag die Adresse über die SSL-Domain auf, sonst über die Hauptdomain.

## Der Pfad des aktuellen Templates

`URL-Template` liefert das Verzeichnis, in dem das gerade verarbeitete Template liegt. Es gehört in das `base`-Element im Seitenkopf, damit alle relativen Angaben im Template auflösen.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<head>
   <base href="~URL-Template~">
   <link rel="stylesheet" href="css/shop.css">
</head>
```

Der Wert richtet sich nach dem Template, das gerade verarbeitet wird, nicht nach einem festen Verzeichnis. Liegen Templates in mehreren Unterverzeichnissen, liefert das Tag jeweils das passende. Auch hier wählt das Shopsystem je nach Aufruf zwischen der SSL-Domain und der Hauptdomain.

> [!WARNING]
>
> Auf dem Template zum Absenden der Bestellung hat `URL-Template` eine zweite, unsichtbare Aufgabe: Es fügt direkt dahinter ein kleines JavaScript in die Seite ein, das die Funktion `check_submit()` bereitstellt. Diese Funktion fängt Doppelklicks auf den Bestellknopf ab und zeigt beim zweiten Klick einen Hinweis. Lassen Sie `~URL-Template~` auf dieser Seite weg, fehlt die Funktion, und ein `onsubmit="return check_submit();"` im Formular läuft ins Leere.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<form action="..." method="post" onsubmit="return check_submit();">
   ...
</form>
```

Das eingefügte Skript bringt seinen Hinweistext in Deutsch und Englisch mit und lässt sich nicht anpassen. Wenn Sie einen eigenen Schutz gegen Doppelklicks bauen, verwenden Sie einen anderen Funktionsnamen, damit sich die beiden nicht ins Gehege kommen.

## Die Parameter des Aufrufs

Drei Tags laufen über die Parameter, mit denen die aktuelle Seite aufgerufen wurde. Damit lassen sich beispielsweise Kampagnenparameter an einen Folgelink weiterreichen oder zur Fehlersuche sichtbar machen.

| Tag | Liefert |
| - | - |
| `URL-Parameter` | als Einzel-Tag die Zahl der Parameter, als Klammerung ob es welche gibt, als Schleife den Durchlauf |
| `URL-Parameter_name` | den Namen des Parameters im Durchlauf |
| `URL-Parameter_value` | seinen Wert |

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{URL-Parameter}
   <p>Dieser Aufruf hat ~URL-Parameter~ Parameter:</p>
   <ul>
      {@URL-Parameter}
         <li>~URL-Parameter_name~</li>
      {/@URL-Parameter}
   </ul>
{/URL-Parameter}
```

> [!WARNING]
>
> `URL-Parameter_value` und `URL-Parameter_name` geben den Wert **unverändert** aus, also ohne die HTML-Kodierung, die fast alle anderen Tags vornehmen. Die Werte stammen aus dem Aufruf und damit von außen. Schreiben Sie sie nie ungeprüft in ein Attribut, in ein Skript oder in sichtbaren Text. Für die Weitergabe an einen Link bauen Sie den Parameter gezielt selbst zusammen, statt den Wert durchzureichen.

Parameter, die das Shopsystem selbst für die interne Zuordnung verwendet, sind ausgenommen. Sie erscheinen weder in der Zählung noch in der Schleife. Übrig bleiben die Parameter, die von außen an den Aufruf angehängt wurden.

`URL-Parameter_name` und `URL-Parameter_value` sind außerhalb der Schleife ungültige Tags. Beide greifen innerhalb der Schleife auch als Klammerung, und zwar dann, wenn ein Wert vorliegt. Bei einem Parameter ohne Wert bleibt `URL-Parameter_value` leer, der Name ist dagegen immer gefüllt.

## Die Tags im Überblick

| Tag | Einzel-Tag | Bereichs-Tag | negatives Bereichs-Tag | Schleifen-Tag |
| - | - | - | - | - |
| `URL-Homepage` | ja | – | – | – |
| `URL-SSLDomain` | ja | ja | ja | – |
| `URL-Shop` | ja | – | – | – |
| `URL-Template` | ja | – | – | – |
| `URL-Parameter` | ja | ja | ja | ja |
| `URL-Parameter_name` | ja | ja | ja | – |
| `URL-Parameter_value` | ja | ja | ja | – |

Alle Tags sind auf allen Templates zulässig. `URL-Parameter_name` und `URL-Parameter_value` stehen ausschließlich innerhalb der `URL-Parameter`-Schleife.

## Verwandte Themen

* Referenz: Der Parameter `Domain-!` im Abschnitt [`Basic`](https://dokumentation.websale.de/v8s/referenz/konfigurationen/shopkonfiguration-shop-config/grundlagen-und-technik#basic) der Shopkonfiguration
* Referenz: [WS- (Allgemeine Tags)](https://dokumentation.websale.de/v8s/referenz/tags/ws/shop-seite-und-technik.md)
* Wegweiser: Links im Template


## Related topics

- [URL-Parameter](https://dokumentation.websale.de/v8s/referenz/url-parameter.md)
- [urls - URL (Webadressen)](https://dokumentation.websale.de/konfiguration/urls-url-webadressen.md)
- [Storefront API URL-Resolution](https://dokumentation.websale.de/schnittstellen/storefront-api/storefront-api-url-resolution.md)
- [API-Referenz SEO-URLs](https://dokumentation.websale.de/schnittstellen/admin-interface-api/api-referenz-seo-urls.md)
- [CHECK- (URL- und Cookie-Daten)](https://dokumentation.websale.de/v8s/referenz/tags/check.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.