Contao-Camp 2024
Ergebnis 1 bis 9 von 9

Thema: Contao 4.6.x - .htaccess - redirect einer URL mit Umlaut

  1. #1
    Contao-Fan Avatar von Seefahrer
    Registriert seit
    20.12.2012.
    Ort
    Wurster Nordseeküste
    Beiträge
    276

    Standard Contao 4.6.x - .htaccess - redirect einer URL mit Umlaut

    Hallo Contao Freunde ...

    wegen mögl. double contents Google ich mir seit Tagen einen Wolf, um herauszufinden, wie das redirect einer Subdomain mit Umlaut in der .htaccess zu definieren ist:

    Meine .htaccess:
    PHP-Code:
    ##
    # Increase php web memory limit
    ##
    php_value memory_limit 512M

    <IfModule mod_headers.c>
        
    # Allow access from all domains for webfonts (see contao/core-bundle#528)
        
    <FilesMatch "\.(ttf|ttc|otf|eot|woff2?|font\.css)$">
            
    Header set Access-Control-Allow-Origin "*"
        
    </FilesMatch>
    </
    IfModule>

    <
    IfModule mod_rewrite.c>
        
    RewriteEngine On
        
        RewriteCond 
    %{HTTP_HOST} ^www\.carlo\.luetten-dieks\.eu$ [NC,OR]
        
    RewriteCond %{HTTP_HOST} ^carlo\.luetten-dieks\.eu$ [NC,OR]
        
    RewriteCond %{HTTP_HOST} ^www\.carlo\.lütten-dieks\.eu$ [NC,OR]
        
    RewriteCond %{HTTP_HOST} ^carlo\.lütten-dieks\.eu$ [NC]
        
    RewriteRule ^(.*)$ https://www.luetten-dieks-carlito.eu%{REQUEST_URI} [R=301,L]
        
        #### To redirect always to world wide web (www) ...
        
    RewriteCond %{HTTP_HOST} !^www\. [NC]
        
    RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
        
        # Determine the RewriteBase automatically and set it as environment variable.
        # If you are using Apache aliases to do mass virtual hosting or installed the
        # project in a subdirectory, the base path will be prepended to allow proper
        # resolution of the app.php file and to redirect to the correct URI. It will
        # work in environments without path prefix as well, providing a safe, one-size
        # fits all solution. But as you do not need it in this case, you can comment
        # the following 2 lines to eliminate the overhead.
        
    RewriteCond %{REQUEST_URI}::$^(/.+)/(.*)::\2$
        
    RewriteRule ^(.*) - [E=BASE:%1]

        
    # Sets the HTTP_AUTHORIZATION header removed by Apache
        
    RewriteCond %{HTTP:Authorization} .
        
    RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

        
    # Redirect to URI without front controller to prevent duplicate content
        # (with and without `/app.php`). Only do this redirect on the initial
        # rewrite by Apache and not on subsequent cycles. Otherwise we would get an
        # endless redirect loop (request -> rewrite to front controller ->
        # redirect -> request -> ...).
        # So in case you get a "too many redirects" error or you always get redirected
        # to the start page because your Apache does not expose the REDIRECT_STATUS
        # environment variable, you have 2 choices:
        # - disable this feature by commenting the following 2 lines or
        # - use Apache >= 2.3.9 and replace all L flags by END flags and remove the
        #   following RewriteCond (best solution)
        
    RewriteCond %{ENV:REDIRECT_STATUS} ^$
        
    RewriteRule ^app\.php(?:/(.*)|$) %{ENV:BASE}/$[R=301,L]

        
    # If the requested filename exists, simply serve it.
        # We only want to let Apache serve files and not directories.
        
    RewriteCond %{REQUEST_FILENAME} -f
        RewriteRule 
    ^ - [L]

        
    # Rewrite all other queries to the front controller.
        
    RewriteRule ^ %{ENV:BASE}/app.php [L]
    </
    IfModule>

    <
    IfModule !mod_rewrite.c>
        <
    IfModule mod_alias.c>
            
    # When mod_rewrite is not available, we instruct a temporary redirect of
            # the start page to the front controller explicitly so that the website
            # and the generated links can still be used.
            
    RedirectMatch 302 ^/$ /app.php/
            
    # RedirectTemp cannot be used instead
        
    </IfModule>
    </
    IfModule
    Ich habe mit der Codierung der subdomain "carlo.lütten-dieks.eu" alles mögliche probiert inkl. ACE, leider klappt die Umleitung nicht, es wird immer auf die originale url "carlo.lütten-dieks.eu" (Fehler 404) geroutet. Die Umleitung von "www.carlo.luetten-dieks.eu, bzw. carlo.luetten-dieks.eu auf "www.luetten-dieks-carlito.eu" funktioniert dagegen reibungslos ...

    Vielleicht habt Ihr (Spooky?) ja den finalen Tip(p) .... Vielen Dank im Voraus
    Seefahrer
    Geändert von Seefahrer (03.09.2018 um 15:03 Uhr)

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.061
    Partner-ID
    10107

    Standard

    Du brauchst die richtige IDN Repräsentation. https://www.punycoder.com/

    zB:
    Code:
    RewriteCond %{HTTP_HOST} ^www\.carlo\.xn--ltten-dieks-thb\.eu$ [NC,OR]

  3. #3
    Contao-Fan Avatar von Seefahrer
    Registriert seit
    20.12.2012.
    Ort
    Wurster Nordseeküste
    Beiträge
    276

    Standard

    Erst einmal vielen Dank Spooky ...

    Genau diesen ACE Code hatte ich mir von der Denic-Seite https://www.denic.de/service/tools/i...r/#idnace-form schon geholt und ausprobiert.
    Danach Symfony-, Contao-Script- und Safari-Cache gelöscht ... leider ohne Erfolg ... auch jetzt nicht ...

    PHP-Code:
    RewriteCond %{HTTP_HOST} ^www\.carlo\.luetten-dieks\.eu$ [NC,OR]
        
    RewriteCond %{HTTP_HOST} ^carlo\.luetten-dieks\.eu$ [NC,OR]
        
    RewriteCond %{HTTP_HOST} ^www\.carlo\.xn--ltten-dieks-thb\.eu$ [NC,OR]
        
    RewriteCond %{HTTP_HOST} ^carlo\.xn--ltten-dieks-thb\.eu$ [NC]
        
    RewriteRule ^(.*)$ https://www.luetten-dieks-carlito.eu%{REQUEST_URI} [R=301,L] 
    Geändert von Seefahrer (03.09.2018 um 15:32 Uhr)

  4. #4
    Contao-Fan Avatar von Seefahrer
    Registriert seit
    20.12.2012.
    Ort
    Wurster Nordseeküste
    Beiträge
    276

    Standard

    Hmhm ...

    habe gerade im All-Inkl KAS festgestellt, dass ich bei meinen Versuchen die zuvor eingerichtete subdomain "carlo.lütten-dieks.eu" offenbar wieder gelöscht hatte.
    Habe die nun erneut eingerichtet und sie wurde mir mir dem ACE-Code "carlo.xn--ltten-dieks-thb.eu" angelegt und angezeigt.

    Jetzt funktioniert der Redirect auch ...

    Bislang war ich der Ansicht, dass die in der .htaccess angelegten Redirects in jedem Fall abhängig von der im Browser eingegebenen Url funktionieren, egal ob eine subdomain existiert oder nicht ...

    ???
    Geändert von Seefahrer (03.09.2018 um 16:14 Uhr)

  5. #5
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.061
    Partner-ID
    10107

    Standard

    Wenn du eine Adresse im Browser eingibst passiert folgendes:

    1. Der Browser schickt (via Betriebssystem) zuerst eine Anfrage an den DNS Server, um die Server IP für die angegebene Domain zu finden.
    2. Danach schickt der Browser einen Request an diese Server IP inkl. der kompletten URL.
    3. Der unter der Server IP laufende Webserver überprüft diese URL und versucht nun anhand der angegebenen Domain aufzulösen, was zu tun ist.
    4. Existiert für die angegebene Domain ein Virtual Host1 wird der Request anhand dessen Konfiguration weiter verarbeitet.
    5. Erst dann kommt das zur Geltung, was du in deiner .htaccess stehen hast.



    1 Dieser Begriff existiert nur im Apache Webserver und soll auch stellvertretend für die nginx "Server Blocks" gelten.
    Geändert von Spooky (03.09.2018 um 17:02 Uhr)

  6. #6
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.076
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von Seefahrer Beitrag anzeigen
    Bislang war ich der Ansicht, dass die in der .htaccess angelegten Redirects in jedem Fall abhängig von der im Browser eingegebenen Url funktionieren, egal ob eine subdomain existiert oder nicht ...

    ???
    Nein, können sie auch nicht. Wie sollte das auch gehen?

    Letztlich müsste ja der Request im Verzeichnis deiner Installation landen, damit die RewriteCond oder auch ein Redirect funktionieren kann. Aber woher soll der Server wissen, wohin er den Request weiterleiten soll, wenn er die angegebene (Sub-)Domain gar nicht kennt? Wenn die Subdomain nicht existiert und keine Wildcard-Subdomain eingerichtet ist, dann weiss der Server nicht wohin damit. Genauso gut könntest du erwarten, dass er wikipedia.org weiterleitet, bloss weil es in deiner .htaccess so drinsteht.

  7. #7
    Contao-Fan Avatar von Seefahrer
    Registriert seit
    20.12.2012.
    Ort
    Wurster Nordseeküste
    Beiträge
    276

    Standard

    @tab
    vielleicht war die Frage ja wirklich ein wenig dumm ... aber ganz so oberlehrerhaft hätte die Antwort nicht ausfallen müssen ...
    Ich suche ja schon seit langem tagelang per Google, bevor ich es wage, hier eine Frage zu stellen ... in Zukunft werde ich mich in jeder Hinsicht geschlossen halten!
    Geändert von Seefahrer (06.09.2018 um 11:52 Uhr)

  8. #8
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.061
    Partner-ID
    10107

    Standard

    Du kannst deine Fragen ruhig weiter stellen

  9. #9
    Wandelndes Contao-Lexikon Avatar von tab
    Registriert seit
    22.10.2013.
    Beiträge
    10.076
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Naja, so war es nicht gemeint . Spooky hat es freilich besser erklärt. Letztlich ist halt das Problem, dass ein solcher Request erst gar nicht im Verzeichnis deiner Installation ankommt - nicht einmal bei deinem Webserver - und somit auch die dortige .htaccess nichts bewirken kann. Das ist bei einer nicht existenten Subdomain sicher nicht so offensichtlich wie bei wikipedia.org.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •