baseURL dynamisch

Viele Webseiten sind sowohl unter der Subdomain "www", als auch nur unter dem Domainnamen erreichbar und sollen es auch sein. In neuerer Zeit kommt es auch immer häufiger  vor, daß zusätzlich eine sichere Erreichbarkeit angeboten wird (https).

 

Zuerst ermitteln wir das Protokoll. Den Code in "Constants" eintragen. Am besten im root, damit es für alle Seiten gilt. Als Standard setzen wir das normale Protokoll "http". Wenn es sich um das sichere Protokoll handelt, wird dieses von "https" überschrieden:

# Protokoll ermitteln
str_protocol = http
[globalString = IENV:TYPO3_SSL=1]
  str_protocol = https
[global]

Als nächstes ermitteln wir den genauen Domainnamen, mit dem die Webseite aufgerufen wurde. Dieses wird auch in "Constants" eingetragen. Wir setzen wieder einen Domainnamen als Standard, der dann im abweichenden Fall überschrieben wird. Nach der zweiten Domain kann man entsprechen weitere eintragen, wenn nötig :

# Domainnamen ermitteln
str_host = domain.de
[globalString = IENV:HTTP_HOST=www.domain.de]
  str_host = www.domain.de
[globalString = IENV:HTTP_HOST=seconddomain.de]
   str_host = seconddomain.de
[globalString = IENV:HTTP_HOST=www.zweitedomain.de]
   str_host = www.zweitedomain.de
[global]

Zum Schluß tragen wir in "Setup" die Zeile für den "baseURL"-Eintrag ein. Dieser wird jetzt automatisch generiert, je nachdem, wie die Seite aufgerufen wurde:

# baseURL setzen
config.baseURL= {$str_protocol}://{$str_host}/

Die Domain sollte nicht über "TYPO3_REQUEST_HOST" gesetzt werden, um eine mögliche Injection zu vermeiden.

 

Wegen der Haftung, wie für alles auf dieser Webseite: Die Nutzung des Tipps erfolgt auf eigene Gefahr.