Ergebnis 1 bis 7 von 7

Thema: URL immer mit Trailing Slash / am Ende (außer bei Download-Dateien)

  1. #1
    Administrator Avatar von Nina
    Registriert seit
    04.06.2009.
    Ort
    Hamburg
    Beiträge
    4.755
    Contao-Projekt unterstützen

    Support Contao

    Standard URL immer mit Trailing Slash / am Ende (außer bei Download-Dateien)

    Ich versuche Contao dazu zu bewegen, dass es nicht nur Ordnerstrukturen in der URL generiert, sondern auch immer schön einen Trailing Slash ans Ende setze.

    Also statt www.domain.tld/test soll es www.domain.tld/test/ sein.
    Natürlich soll der Trailing Slash aber nicht ergänzt werden, wenn der Link auf eine Datei (CSS, PDF, etc.) verweist.

    Hat da jemand einen sauberen Weg?

  2. #2
    Contao-Fan
    Registriert seit
    16.05.2014.
    Beiträge
    295

    Standard

    Wenn du einfach in den Contao Einstellungen als Endung statt bspw. ".html" das "/" eingibst führt das doch zu dem Verhalten.

    Das macht natürlich die URLs ohne / ungültig, wenn es also keine neue Site ist kann man noch per .htaccess umleiten.

    Sowas in der Art:
    [HTML]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !(.*)/$
    RewriteRule ^(.*)$ http://domain.com/$1/ [L,R=301]
    #oder
    RewriteRule ^(.*)$ index.php/$1/ [L,R=301]

    edt: sry das falsche eingefügt habs jetzt aber auch nicht getestet
    Geändert von Znrl (31.05.2015 um 22:12 Uhr)

  3. #3
    Contao-Nutzer Avatar von rennXF
    Registriert seit
    05.08.2013.
    Beiträge
    114

    Standard

    @Nina: Hast du das schon getestet? Also die Korrektur der htaccess damit die alten URLs noch funktionieren? Dieses Thema schiebe ich auch schon eine Weile vor mir her bei einer Installation.

  4. #4
    Alter Contao-Hase Avatar von bizon
    Registriert seit
    16.06.2010.
    Beiträge
    1.125

    Standard

    Code:
      
      ##
      # Setzt einen slash (/) ans Ende der Url
      ##
      RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$
      RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]
    In eine frische .htaccess schreibe ich das ~ bei Zeile 255, direkt vor den Block, der das index.php entfernt.

    Falls nicht vorhanden, wird ein Slash ans Ende der URL gesetzt. URL - z.B. bei Download-PDF - bleiben unberührt.

  5. #5
    Contao-Nutzer Avatar von rennXF
    Registriert seit
    05.08.2013.
    Beiträge
    114

    Standard

    Superklasse – das funktioniert! Ich habe hier auch noch unter Einstellungen/Frontend-Einstellungen/URL-Suffix den Trailing Slash einstellen müssen. Alle URLs ohne Slash werden wunderbar korrigiert.

  6. #6
    Contao-Nutzer Avatar von rennXF
    Registriert seit
    05.08.2013.
    Beiträge
    114

    Standard

    In meinem Bookmarks-Archiv…
    https://community.contao.org/de/show...s-hinzuf%FCgen
    Alzheimer lässt grüßen ;-)

  7. #7
    Administrator Avatar von Nina
    Registriert seit
    04.06.2009.
    Ort
    Hamburg
    Beiträge
    4.755
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Unter 3.5 habe ich den Abschnitt jetzt so eingestellt:

    Code:
      ##
      # Setzt einen slash (/) ans Ende der Url
      ##
      RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$
      RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]
    
      ##
      # By default, Contao adds ".html" to the generated URLs to simulate static
      # HTML documents. If you change the URL suffix in the back end settings, make
      # sure to change it here accordingly!
      #
      #   RewriteRule .*\.html$ index.php [L]   # URL suffix .html
      #   RewriteRule .*\.txt$ index.php [L]    # URL suffix .txt
      #   RewriteRule .*\.json$ index.php [L]   # URL suffix .json
      #
      # If you do not want to use an URL suffix at all, you have to add a third
      # line to prevent URLs that point to folders from being rewritten (see #4031).
      #
      #   RewriteCond %{REQUEST_FILENAME} !-d
      #   RewriteRule .* index.php [L]
      #
      # If you are using mod_cache, it is recommended to use the RewriteRule below,
      # which adds the query string to the internal URL:
      #
      #   RewriteRule (.*\.html)$ index.php/$1 [L]
      #
      # Note that not all environments support mod_rewrite and mod_cache.
      ##
      RewriteCond %{REQUEST_FILENAME} !\.(htm|php|js|css|htc|png|gif|jpe?g|ico|xml|csv|txt|swf|flv|mp4|webm|ogv|mp3|ogg|oga|eot|otf|tt[cf]|woff2?|svgz?|pdf|gz)$
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule .* index.php [L]

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
  •