Ergebnis 1 bis 11 von 11

Thema: htaccess Trailing Slash Problematik

  1. #1
    Contao-Nutzer
    Registriert seit
    05.03.2020.
    Beiträge
    4

    Standard htaccess Trailing Slash Problematik

    Hallo zusammen!
    Ich bin absoluter Contao Neuling und habe auch schon die Forensuche bemüht, aber leider nichts gefunden.

    An alle Unterseiten meiner Domain wird immer ein Trailingslash angehängt.
    Beispiel: Domain.de/beispiel/

    Soweit so gut.

    Wenn nun aber die URL ohne Trailingslash am Ende aufgerufen wird, gibt es einen 404 Fehler.

    Ich möchte nun, dass an jede URL immer ein Trailingslash angehängt wird.
    Sobald eine URL ohne Trailingslash aufgerufen wird, soll sie auf die URL MIT Trailingslash weiterleiten.

    Mein Programmierer sagt mir, dass es leider nicht so einfach möglich ist und man für jede einzelne URL eine Weiterleitung anlegen muss.
    Das kann es doch aber nicht sein, oder?


    Folgende drei Befehle in der htaccess haben wir schon durchprobiert:
    Code:
    RewriteCond %{REQUEST_URI} /+[^\.]+$
    RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]
    
    
    RewriteCond %{REQUEST_URI} !(/$|\.) 
    RewriteRule (.*) %{REQUEST_URI}/ [R=301,L] 
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*[^/])$ /$1/ [L,R]

    Wisst ihr evtl. eine Lösung?
    So langsam verliere ich den Glauben an Contao...

  2. #2
    Community-Moderator Avatar von stefan-at-work
    Registriert seit
    05.06.2009.
    Ort
    Bad Segeberg
    Beiträge
    1.780
    Partner-ID
    634

    Standard

    Code:
    RewriteCond %{REQUEST_URI} /+[^\.]+$
     RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]

    Gesendet von iPhone mit Tapatalk

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

    Support Contao

    Standard

    Zitat Zitat von onlineseitig Beitrag anzeigen
    So langsam verliere ich den Glauben an Contao...
    Wobei die Weiterleitung nichts mit Contao zu tun hat

  4. #4
    Contao-Nutzer
    Registriert seit
    05.03.2020.
    Beiträge
    4

    Standard

    Zitat Zitat von stefan-at-work Beitrag anzeigen
    Code:
    RewriteCond %{REQUEST_URI} /+[^\.]+$
     RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]

    Gesendet von iPhone mit Tapatalk
    Mein Entwickler meinte, er hat das schon probiert.
    Seine Begründung:"Pauschal kann man es nicht machen, da das CMS nicht korrekt funktioniert (Cache,Updates,Cronjobs etc. werden nicht aufgerufen)"


    Hast du das schon mal so eingebunden?

  5. #5
    Community-Moderator Avatar von stefan-at-work
    Registriert seit
    05.06.2009.
    Ort
    Bad Segeberg
    Beiträge
    1.780
    Partner-ID
    634

    Standard

    Zitat Zitat von onlineseitig Beitrag anzeigen
    Hast du das schon mal so eingebunden?
    Nein. Ich wüsste auch nicht, warum ich zwingend einen abschließenden Trailing Slash benötigen sollte

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

    Support Contao

    Standard

    Zitat Zitat von stefan-at-work Beitrag anzeigen
    Nein. Ich wüsste auch nicht, warum ich zwingend einen abschließenden Trailing Slash benötigen sollte
    Weil du grundsätzlich immer Ordner anzeigst und nie Webseiten

  7. #7
    Community-Moderator Avatar von stefan-at-work
    Registriert seit
    05.06.2009.
    Ort
    Bad Segeberg
    Beiträge
    1.780
    Partner-ID
    634

    Standard

    Zitat Zitat von tab Beitrag anzeigen
    Weil du grundsätzlich immer Ordner anzeigst und nie Webseiten
    Das ist mir schon klar, ich sehe nur keinen Vorteil darin den URL-Suffix wegzulassen

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

    Support Contao

    Standard

    Es gibt auch nur den einen Vorteil, dass die URL dadurch kürzer wird. Immerhin. Vielleicht spart das dann beim Speicherbedarf der Browser ein paar Kilobyte RAM. Kriegsentscheidend ist es sicher nicht. Beim Trailing-Slash ist es allerdings noch ganz anders. Es gibt hier keinen Vorteil (gegenüber der Variante ohne Trailing-Slash), die URL wird sogar um ein Zeichen länger. Was soll das also werden? Wer erfindet so einen ****? Und nein, es werden eben keine Verzeichnisse angezeigt, obwohl der Trailing Slash das eigentlich signalisiert. Also sinnlos, falsch und verwirrend. Eine gute Kombination, so sollte man das unbedingt machen.

  9. #9
    Contao-Fan Avatar von Nightwing
    Registriert seit
    29.05.2013.
    Beiträge
    436

    Standard

    Zitat Zitat von onlineseitig Beitrag anzeigen
    Mein Entwickler meinte, er hat das schon probiert.
    Seine Begründung:"Pauschal kann man es nicht machen, da das CMS nicht korrekt funktioniert (Cache,Updates,Cronjobs etc. werden nicht aufgerufen)"
    Du müsstest in diesem Fall auf das Vorkommen von contao checken, sodass es aus dieser Regel ausgenommen wird, dann ist das Argument hinfällig:
    Code:
        ##
        # URL with trailing slash suffix (/)
        ##
        ### RewriteCond %{REQUEST_URI} !^/contao(.*)$
        ### RewriteCond %{REQUEST_FILENAME} !-f
        ### RewriteCond %{REQUEST_URI} /+[^\.]+$
        ### RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]    
        
        ##
        # URL with /alias
        ##
        RewriteCond %{REQUEST_URI} !^/contao$
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^([^./]+)$ /$1/ [R=301,L]
    Die Rules setz am besten vor dieser Zeile in Deiner von Contao erstellten .htaccess ein, hab irgendwann in den Tiefen des Forums den Tip von Spooky gelesen:
    Code:
        # Rewrite all other queries to the front controller.
        RewriteRule ^ %{ENV:BASE}/index.php [L]
    </IfModule>
    ToM

    Edit: !^/contao(/|$) geht auch und schaut besser aus.
    Geändert von Nightwing (07.03.2020 um 18:54 Uhr)

  10. #10
    Contao-Nutzer
    Registriert seit
    05.03.2020.
    Beiträge
    4

    Standard

    Zitat Zitat von tab Beitrag anzeigen
    Es gibt auch nur den einen Vorteil, dass die URL dadurch kürzer wird. Immerhin. Vielleicht spart das dann beim Speicherbedarf der Browser ein paar Kilobyte RAM. Kriegsentscheidend ist es sicher nicht. Beim Trailing-Slash ist es allerdings noch ganz anders. Es gibt hier keinen Vorteil (gegenüber der Variante ohne Trailing-Slash), die URL wird sogar um ein Zeichen länger. Was soll das also werden? Wer erfindet so einen ****? Und nein, es werden eben keine Verzeichnisse angezeigt, obwohl der Trailing Slash das eigentlich signalisiert. Also sinnlos, falsch und verwirrend. Eine gute Kombination, so sollte man das unbedingt machen.
    Eigentlich sollte man ohne Trailingslash arbeiten, weil das einfach "sauberer" ist.
    Wenn das nun aber historisch so gewachsen ist, ist das kein Halsbruch und man hat dadurch keinen Nachteil.

    Problematisch wird das ganze eben, wenn die URL mit und ohne Trailingslash aufrubar ist.
    Dann sind das nämlich zwei verschiedene URLs und Suchmaschinen haben damit ein Problem.
    Nur darum gehts mir

  11. #11
    Contao-Nutzer
    Registriert seit
    05.03.2020.
    Beiträge
    4

    Standard

    Das war die Lösung, danke!!!

    Zitat Zitat von Nightwing Beitrag anzeigen
    Du müsstest in diesem Fall auf das Vorkommen von contao checken, sodass es aus dieser Regel ausgenommen wird, dann ist das Argument hinfällig:
    Code:
        ##
        # URL with trailing slash suffix (/)
        ##
        ### RewriteCond %{REQUEST_URI} !^/contao(.*)$
        ### RewriteCond %{REQUEST_FILENAME} !-f
        ### RewriteCond %{REQUEST_URI} /+[^\.]+$
        ### RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]    
        
        ##
        # URL with /alias
        ##
        RewriteCond %{REQUEST_URI} !^/contao$
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^([^./]+)$ /$1/ [R=301,L]
    Die Rules setz am besten vor dieser Zeile in Deiner von Contao erstellten .htaccess ein, hab irgendwann in den Tiefen des Forums den Tip von Spooky gelesen:
    Code:
        # Rewrite all other queries to the front controller.
        RewriteRule ^ %{ENV:BASE}/index.php [L]
    </IfModule>
    ToM

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
  •