blog.bartlweb - a technologist's external brain

BaseURL per TypoScript dynamisch setzen

Gerade in Zusammenhang mit RealUrl muss in Typo3 per "config.baseURL" die BaseURL für die aktuelle Seite gesetzt werden. Jetzt kommt es aber des öfteren vor, dass eine Seite über verschiedene Domains oder auch per HTTPS erreichbar sein soll und hier greift das untere TypoScript-Snipplet das dann automatisch für die jeweilige Domain und das jeweilige Protokoll die richtige BaseURL setzt.

Constants

#
# set baseurl depending on host - part 1
#
 
protocol = http
[globalString = IENV:TYPO3_SSL=1]
  protocol = https
[global]
 
host = domain.com
[globalString = IENV:HTTP_HOST=www.domain.com]
  host = www.domain.com
[globalString = IENV:HTTP_HOST=seconddomain.com]
  host = seconddomain.com
[globalString = IENV:HTTP_HOST=www.seconddomain.com]
  host = www.seconddomain.com
[global]

Setup

#
# set baseurl depending on host - part 2
#
 
config.baseURL= {$protocol}://{$host}/

Dieser Artikel hat Dir deinen Tag gerettet?

... und mühevolles Probieren, Recherchieren und damit Stunden an Zeit gespart? Oder einfach nur Dein Problem gelöst?

Dann würde ich mich freuen, wenn Du meine Zeit für die Erstellung dieses Blogartikels mit einer kleinen Anerkennung honorierst:

Zahlung mit PayPal oder Kreditkarte.

Hinweis zur Verwendung

Die Übermittlung einer Zahlung ist eine persönliche Anerkennung Ihrerseits an den Entwickler (Christian Bartl, Privatperson). Eine Zahlung ist nicht zweckgebunden und es ist keine Gegenleistung zu erwarten. Bitte beachten Sie, dass für eine übermittelte Zahlung keine Quittung ausgestellt werden kann.

Über den Autor

Christian Bartl

Christian Bartl Requirements Engineer
& Solution Architect für Online und Mobile

Als Technologie-Enthusiast und begeisterter Programmierer entwickle ich in meiner Freizeit Websites, Software und IT-Lösungen, die mir selbst und anderen den Alltag vereinfachen.

mehr auf christian.bartl.me

Kommentare

  1. Thanx for the code, good idea. It's useful and I like it. I still like to go a step further. I'd like to store getIndpEnv:data = TYPO3_REQUEST_HOST into a string that I can assign to a constant. Then I could move any Typo3 installation to any domain, also onto a local machine without ever needing to change the baseURL. Is this possible at all? My problem was that I could not figure out how to "store" getIndpEnv:data = TYPO3_REQUEST_HOST in a constant. Thanx.

    kommentieren

    1. As far as I know, typoscript constants only store string values and it is not possible to assign any dynamic data since constants are no real variables.

      kommentieren

  2. Beware! Setting baseURL dynamically from TYPO3_REQUEST_HOST is a security risk!
    TYPO3_REQUEST_HOST could be spoofed. This could then lead to injection of malicious baseURL in page cache.

    kommentieren

Kommentar schreiben

Der hier angegebene Name wird gemeinsam mit deinem Kommentar auf der Website veröffentlicht.

Deine E-Mail-Adresse wird zur einmaligen Benachrichtigung bei Veröffentlichung des Kommentars genutzt.

Benachrichtigung per E-Mail über Antworten auf meinen Kommentar erhalten.

Bitte tippe die Zahlenkombination "8239" ein, nur dann kann ich deinen Kommentar entgegennehmen.

Bitte fülle dieses Feld nicht aus, nur dann kann ich deinen Kommentar entgegennehmen.