Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 40 von 41

Thema: Hilfe – Trailing Slash lässt sich nicht korrekt anfügen

  1. #1
    Gesperrt
    Registriert seit
    14.10.2012.
    Ort
    München
    Beiträge
    63

    Standard Hilfe – Trailing Slash lässt sich nicht korrekt anfügen

    Hallo – und ein gutes Neues!

    Ich versuche vergeblich, einen Traling Slash an meine URLs zu anzuhängen.

    Momentan ist es so, dass die URLs keinen Trailing Slash haben (www.example.com/seitenname).
    Der Aufruf der URLs mit Slash (www.example.com/seitenname/) erzeugt einen 404 Error.

    Ich hätte gerne immer einen Trailing Slash, bzw. eine 301-Weiterleitung darauf – u. a. auch wegen duplicate content – und habe das mit folgendem htaccess-Eintrag versucht:

    PHP-Code:
     RewriteEngine On
     RewriteCond 
    %{REQUEST_URI} ^/[^\.]+[^/]$
     
    RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1/ [R=301,L] 
    (Seite läuft über https)

    Damit wird zwar automatisch ein Trailing Slash an die URL angefügt (bzw. darauf umgeleitet), aber trotzdem bekomme ich einen 404 Error.

    Anbei meine ganze htaccess (Seite ist noch nicht online).

    Was mache ich falsch?
    Es wäre toll, wenn mir jemand helfen kann.
    Alex

    --------------------

    PHP-Code:
    # Disable server signature (funktioniert nicht)
    ServerSignature Off

    ##
    # Contao Open Source CMS
    #
    # Copyright (c) 2005-2016 Leo Feyer
    #
    # @license LGPL-3.0+
    ##

    ##
    # Prevent access to the Contao template files
    ##
    <FilesMatch "\.(tpl|html5|xhtml)$">
      <
    IfModule !mod_authz_core.c>
        
    Order deny,allow
        Deny from all
      
    </IfModule>
      <
    IfModule mod_authz_core.c>
        Require 
    all denied
      
    </IfModule>
    </
    FilesMatch>

    ##
    # Allow access from all domains for webfonts
    # @see https://github.com/h5bp/html5-boilerplate
    ##
    <IfModule mod_headers.c>
      <
    FilesMatch "\.(ttf|ttc|otf|eot|woff2?|font\.css)$">
        
    Header set Access-Control-Allow-Origin "*"
      
    </FilesMatch>
    </
    IfModule>

    ##
    # Disable ETags
    # @see http://developer.yahoo.com/performance/rules.html#etags
    ##
    FileETag None
    <IfModule mod_headers.c>
      
    Header unset ETag
    </IfModule>

    ##
    # Set the proper MIME types
    # @see https://github.com/h5bp/html5-boilerplate
    ##
    <IfModule mod_mime.c>
      
    AddType application/javascript              js jsonp
      AddType application
    /json                    json
      AddType audio
    /ogg                           oga ogg
      AddType audio
    /mp4                           m4a f4a f4b
      AddType video
    /ogg                           ogv
      AddType video
    /mp4                           mp4 m4v f4v f4p
      AddType video
    /webm                          webm
      AddType video
    /x-flv                         flv
      AddType image
    /svg+xml                       svg svgz
      AddEncoding gzip                            svgz
      AddType application
    /vnd.ms-fontobject       eot
      AddType application
    /x-font-ttf              ttf ttc
      AddType font
    /opentype                       otf
      AddType application
    /x-font-woff             woff woff2
      AddType image
    /x-icon                        ico
      AddType image
    /webp                          webp
      AddType text
    /cache-manifest                 appcache manifest
      AddType text
    /x-component                    htc
      AddType application
    /xml                     rss atom xml rdf
      AddType application
    /x-web-app-manifest+json webapp
      AddType text
    /x-vcard                        vcf
      AddType application
    /x-shockwave-flash       swf
    </IfModule>

    ##
    # Gzip compression
    # @see https://github.com/h5bp/html5-boilerplate
    ##
    <IfModule mod_deflate.c>
      <
    IfModule mod_filter.c>
        
    AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
        AddOutputFilterByType DEFLATE application
    /javascript
        AddOutputFilterByType DEFLATE text
    /xml application/xml text/x-component
        AddOutputFilterByType DEFLATE application
    /xhtml+xml application/rss+xml application/atom+xml
        AddOutputFilterByType DEFLATE image
    /x-icon image/svg+xml application/vnd.ms-fontobject application/x-font-ttf font/opentype
      
    </IfModule>
    </
    IfModule>

    ##
    # Expires headers (for better cache control)
    # @see https://github.com/h5bp/html5-boilerplate
    ##
    <IfModule mod_expires.c>
      
    ExpiresActive on

      
    ##
      # Productional website
      ##
      
    ExpiresByType text/cache-manifest           "access plus 0 seconds"
      
    ExpiresByType text/html                     "access plus 0 seconds"
      
    ExpiresByType text/xml                      "access plus 0 seconds"
      
    ExpiresByType application/xml               "access plus 0 seconds"
      
    ExpiresByType application/json              "access plus 0 seconds"
      
    ExpiresByType application/rss+xml           "access plus 1 hour"
      
    ExpiresByType application/atom+xml          "access plus 1 hour"
      
    ExpiresByType image/gif                     "access plus 1 month"
      
    ExpiresByType image/png                     "access plus 1 month"
      
    ExpiresByType image/jpeg                    "access plus 1 month"
      
    ExpiresByType image/x-icon                  "access plus 1 month"
      
    ExpiresByType video/ogg                     "access plus 1 month"
      
    ExpiresByType audio/ogg                     "access plus 1 month"
      
    ExpiresByType video/mp4                     "access plus 1 month"
      
    ExpiresByType video/webm                    "access plus 1 month"
      
    ExpiresByType text/x-component              "access plus 1 month"
      
    ExpiresByType application/x-font-ttf        "access plus 1 month"
      
    ExpiresByType font/opentype                 "access plus 1 month"
      
    ExpiresByType application/x-font-woff       "access plus 1 month"
      
    ExpiresByType image/svg+xml                 "access plus 1 month"
      
    ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
      
    ExpiresByType text/css                      "access plus 1 year"
      
    ExpiresByType application/javascript        "access plus 1 year"

      
    ##
      # Disable caching during development
      # @see https://github.com/contao/core/issues/4364
      ##
      #ExpiresByType text/cache-manifest           "access"
      #ExpiresByType text/html                     "access"
      #ExpiresByType text/xml                      "access"
      #ExpiresByType application/xml               "access"
      #ExpiresByType application/json              "access"
      #ExpiresByType application/rss+xml           "access"
      #ExpiresByType application/atom+xml          "access"
      #ExpiresByType image/gif                     "access"
      #ExpiresByType image/png                     "access"
      #ExpiresByType image/jpeg                    "access"
      #ExpiresByType image/x-icon                  "access"
      #ExpiresByType video/ogg                     "access"
      #ExpiresByType audio/ogg                     "access"
      #ExpiresByType video/mp4                     "access"
      #ExpiresByType video/webm                    "access"
      #ExpiresByType text/x-component              "access"
      #ExpiresByType application/x-font-ttf        "access"
      #ExpiresByType font/opentype                 "access"
      #ExpiresByType application/x-font-woff       "access"
      #ExpiresByType image/svg+xml                 "access"
      #ExpiresByType application/vnd.ms-fontobject "access"
      #ExpiresByType text/css                      "access"
      #ExpiresByType application/javascript        "access"

    </IfModule>

    ##
    # Header adjustments
    ##
    <IfModule mod_headers.c>

      
    ##
      # Disable caching during development
      # @see https://github.com/contao/core/issues/4364
      ##
      #Header unset Cache-Control
      #Header append Cache-Control must-revalidate

      ##
      # Do not cache the cron.txt file
      # @see https://github.com/contao/core/issues/5105
      ##
      
    <FilesMatch "cron\.txt$">
        
    Header set Cache-Control "no-cache, no-store, must-revalidate, max-age=0, proxy-revalidate, no-transform"
      
    </FilesMatch>

      
    ##
      # Add a Vary Accept-Encoding header for the compressed resources. If you
      # modify the file types above, make sure to change them here accordingly.
      # @see http://developer.yahoo.com/performance/rules.html#gzip
      #
      # Note: If you are using a case-sensitive file system like HFS+ or ext4, you
      # have to change the <FilesMatch> directive as follows:
      #
      # <FilesMatch "\.(?i:js|css|xml|gz|svgz)$">
      #
      # For more information see: https://github.com/contao/core/issues/4364
      ##
      
    <FilesMatch "\.(js|css|xml|gz|svgz)$">
        
    Header append Vary Accept-Encoding
      
    </FilesMatch>

      
    ##
      # Do not cache source map files
      # @see https://github.com/contao/core/issues/8532
      ##
      
    <FilesMatch "\.map$">
        
    Header set Expires "0"
        
    Header set Cache-Control "no-cache, no-store, must-revalidate, max-age=0, proxy-revalidate, no-transform"
      
    </FilesMatch>

    </
    IfModule>

    ##
    # Disable MultiViews if you are having issues with requests returning the wrong
    # page. Requires AllowOverride Options=All,MultiViews to be set here.
    # @see https://github.com/contao/core/issues/3521
    ##
    #Options -MultiViews

    ##
    # URL rewriting
    ##
    <IfModule mod_rewrite.c>
      
    RewriteEngine On
      
      
    ##
      # SSL Weiterleitung
      
    RewriteCond %{HTTPSoff
      RewriteRule 
    (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]


      ##
      # Change the RewriteBase if your Contao installation is in a subdirectoy and
      # the rewrite rules are not working properly. Usage examples:
      #
      #   RewriteBase /contao-3.0.0
      #   RewriteBase /path/to/contao
      #
      # Depending on your server, you might have to remove the line entirely.
      ##
      
    RewriteBase /

      
    ##
      # Uncomment the following lines to add "www." to the domain:
      #
            
    RewriteCond %{HTTP_HOST} ^00\.00\.000\.000$ [NC,OR]
          
    RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
          
    RewriteRule (.*) https://www.example.com.de/$1 [R=301,L]
      #
      # Uncomment the following lines to remove "www." from the domain:
      #
      #   RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
      #   RewriteRule (.*) http://example.com/$1 [R=301,L]
      #
      # Make sure to replace "example.com" with your domain name.
      ##

      ##
      # If you cannot use mod_deflate, uncomment the following lines to load a
      # compressed .gz version of the aggregated Contao JavaScript and CSS files.
      ##
      #AddEncoding gzip .gz
      #<FilesMatch "\.js\.gz$">
      #  AddType "application/javascript" .gz
      #</FilesMatch>
      #<FilesMatch "\.css\.gz$">
      #  AddType "text/css" .gz
      #</FilesMatch>
      #RewriteCond %{HTTP:Accept-encoding} gzip
      #RewriteCond %{REQUEST_FILENAME} \.(js|css)$
      #RewriteCond %{REQUEST_FILENAME}.gz -f
      #RewriteRule ^(.*)$ $1.gz [QSA,L]

      ##
      # Trailing Slash v1
      ##
      #RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$
      #RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1/ [R=301,L]
      
      ##
      # Trailing Slash v2
      ##
      #RewriteCond %{REQUEST_FILENAME} !-f
      #RewriteCond %{REQUEST_URI} !(.*)/$
      #RewriteRule ^(.*)$ https://www.example.com/$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|map|htc|png|gif|jpe?g|ico|xml|csv|txt|swf|flv|mp4|webm|ogv|mp3|ogg|oga|eot|otf|tt[cf]|woff2?|svgz?|pdf|zip|gz)$
      
    RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond 
    %{REQUEST_FILENAME} !-d
      RewriteRule 
    .* index.php [L]
      
    #RewriteRule .*\.html$ index.php [L]

      ##
      # The following rules are required if you want to pass the language as first
      # URL parameter (added in Contao 2.11). The first rule rewrites the empty URL
      # to the front end controller, the second one adds a missing trailing slash.
      ##
      
    RewriteRule ^[a-z]{2}(\-[A-Z]{2})?/$ index.php [L]
      
    RewriteRule ^([a-z]{2}(\-[A-Z]{2})?)$ $1/ [R=301,L]

    </
    IfModule
    Geändert von Alexandra (02.01.2017 um 14:46 Uhr)

  2. #2
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.794

    Standard

    Ich hatte so etwas auf http://www.sv-mesum.de/ gesehen, betreut vom Benutzer holzibus. Der hat bei URL-Suffix nach meiner Erinnerung nichts zu stehen und auch nicht die .htaccess geändert. Aber es war wohl eine externe Erweiterung im Spiel.
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  3. #3
    Gesperrt
    Registriert seit
    14.10.2012.
    Ort
    München
    Beiträge
    63

    Standard Niemand, der Trailing Slashes verwendet?

    Hat denn niemand bei seinen URL einen Trailing Slash realisiert (bei Entfernung des URL-Suffix)?

    Es passiert ja immer wieder, dass eine URL mit oder ohne „/“ am Ende eingeben bzw. verlinkt wird. Da sollte dann immer die selbe (!) Seite dabei rauskommen (und zwar nicht doppelt).

    Über einen Tipp für die htaccess wäre ich sehr dankbar.

    Alex

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

    Support Contao

    Standard

    Über die Contao-Google-Suche in 2 Minuten gefunden:
    https://community.contao.org/de/show...l=1#post374326

  5. #5
    Gesperrt
    Registriert seit
    14.10.2012.
    Ort
    München
    Beiträge
    63

    Standard

    Zitat Zitat von tab Beitrag anzeigen
    Über die Contao-Google-Suche in 2 Minuten gefunden:
    https://community.contao.org/de/show...l=1#post374326
    Das hatte ich – nach längerer Suche und bevor ich hier in der Community gefragt habe – auch gefunden und eingebaut. Der Code steht in meiner geposteten htaccess. Auskommentiert, weil es bei mir leider nicht funktioniert hat: an die URL wird ein Trailing Slash angehängt, aber die Seite wird nicht gefunden (404-Error).

    Trotzdem vielen Dank für den netten Tipp!

    Irgendwelche Anweisungen heben sich da gegenseitig auf in der htaccess

    Alex

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

    Support Contao

    Standard

    Wahrscheinlich musst du im Backend noch '/' als Suffix eintragen und eventuell noch dafür sorgen, dass das URL umschreiben funktioniert, also eventuell so:
    Code:
      RewriteCond %{REQUEST_FILENAME} !\.(htm|php|js|css|map|htc|png|gif|jpe?g|ico|xml|csv|txt|swf|flv|mp4|webm|ogv|mp3|ogg|oga|eot|otf|tt[cf]|woff2?|svgz?|pdf|zip|gz)$
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d 
      RewriteRule .*\/$ index.php [L]
    Edit: Unglaublich, jetzt unterstütze ich auch noch diese Unsitte

  7. #7
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    6.753
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Komisch, ich kann diese Unsitte auch nicht nachvollziehen. Die Argumente "kurze URL" oder was da immer so kommt auch nicht.
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




  8. #8
    Gesperrt
    Registriert seit
    14.10.2012.
    Ort
    München
    Beiträge
    63

    Standard

    Meint Ihr mit Unsitte den Trailing Shlash oder die Nutzung von URLs ohne Suffix (.html)?

  9. #9
    Gesperrt
    Registriert seit
    14.10.2012.
    Ort
    München
    Beiträge
    63

    Daumen hoch

    Zitat Zitat von tab Beitrag anzeigen
    Wahrscheinlich musst du im Backend noch '/' als Suffix eintragen … (…)
    Vielen Dank, das hat geholfen!

  10. #10
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    6.753
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ich meine die Unsitte Urls ohne Suffix (.html) zu nutzen.
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




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

    Support Contao

    Standard

    Und ich meinte beides, allerdings den "Trailing Slash" noch mehr als den "fehlenden" Suffix. Für oder gegen den Suffix sehe ich durchaus jeweils Argumente und betrachte das eher als philosophische Frage . Technisch gesehen wird ja eigentlich ein PHP-Skript aufgerufen, also weder eine HTML-Datei noch eine ""-Datei . Andererseits wird aber HTML ausgeliefert und ich sehe die Ressource eher als das, was ausgeliefert wird, also HTML. Bei PDFs wird ja im allgemeinen auch nicht auf den Suffix verzichtet.
    Ein Trailing Slash bezeichnet traditionell eher ein Verzeichnis, auch wenn das wohl nicht verbindlich ist. Irgendeinen Nährwert hat er auch nicht. Er bringt unter Umständen auch solche Nettigkeiten mit sich, dass die Ressource möglicherweise mit einer beliebigen Anzahl von Trailing Slashes aufrufbar ist, was dann wieder ungünstig ist und eigentlich verhindert werden sollte.

  12. #12
    Gesperrt
    Registriert seit
    14.10.2012.
    Ort
    München
    Beiträge
    63

    Standard

    @tab:
    ja, das mit dem Suffix halte ich auch für eine philosophische Frage (für mich ist es eher keine html-Seite). Ein Link ohne Suffix sieht außerdem IMHO für Internet-Laien etwas weniger technisch aus und ist somit auch besser lesbar und merkbar (z.B. wenn es in Druckerzeugnissen nicht direkt anklickbar ist). Bei dem Thema Trailing Shlash ist es so, dass die URL unbedingt auch mit dem Trailing Slash korrekt ausgeliefert werden muss – bei mir gab es da bisher immer einen 404. Damit nicht die selben Inhalte sowohl mit, als auch ohne Trailing Slash ausgeliefert werden (=duplicate content), muss man entweder den Trailing Slash entfernen (d.h. auf die URL ohne Trailing Slash umleiten) oder eben immer einen Trailing Slash dranhängen und alles andere darauf umleiten. Dass es mit Trailing Slash eher nach Verzeichnis aussieht, ist ein gutes Argument! Schade, dass ich kein Apache kann ;-)), sonst würde ich es künftig wahrscheinlich ohne machen.
    Geändert von Alexandra (05.01.2017 um 14:42 Uhr)

  13. #13
    Contao-Urgestein Avatar von Samson1964
    Registriert seit
    05.11.2012.
    Ort
    Berlin
    Beiträge
    2.794

    Standard

    Zitat Zitat von Alexandra Beitrag anzeigen
    Ein Link ohne Suffix sieht außerdem IMHO für Internet-Laien etwas weniger technisch aus und ist somit auch besser lesbar und merkbar (z.B. wenn es in Druckerzeugnissen nicht direkt anklickbar ist).
    Wobei Internet-Laien sowieso nicht auf die Adresszeile schauen. Außerdem blenden einige Browser die URL teilweise aus, was wiederum für Internet-Experten ein No-go ist.
    Viele Grüße
    Frank

    Seit Mai 2013 Fan von Contao
    Webmaster vom Deutschen Schachbund und Berliner Schachverband
    Mein Blog: Schachbulle
    Meine Erweiterungen bei GitHub
    Meine Videos auf YouTube: Playlist zur Contao-Programmierung/Einrichtung

  14. #14
    Gesperrt
    Registriert seit
    14.10.2012.
    Ort
    München
    Beiträge
    63

    Standard

    Zitat Zitat von Samson1964 Beitrag anzeigen
    Wobei Internet-Laien sowieso nicht auf die Adresszeile schauen. (…).
    Ich meinte die Angabe von Links z.B. in Druckerzeugnissen (Flyer o. ä.).:
    ist für potentielle Kunden leichter zu merken als,
    Die genannte Seite wird so möglicherweise öfter besucht.

  15. #15
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    6.753
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von Alexandra Beitrag anzeigen
    ist für potentielle Kunden leichter zu merken als,
    Nun ja, wie gesagt eine leicht philosophische Frage und so dargestellt das Ergebnis des Betrachters beeinflussend.

    example.com/portfolio.html

    finde ich persönlich nicht zwangsweise schlechter als Variante 1. Der Unterschied in der Länge zum Merken ist dann genau ein Zeichen.
    Geändert von mlweb (06.01.2017 um 12:03 Uhr)
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




  16. #16
    Gesperrt
    Registriert seit
    14.10.2012.
    Ort
    München
    Beiträge
    63

    Standard

    Zitat Zitat von mlweb Beitrag anzeigen
    Der Unterschied in der Länge zum Merken ist dann genau ein Zeichen.
    . h t m l sind für genau fünf Zeichen.

    Und es gibt viele Menschen, denen diese Buchstabenkombination / Abkürzung nicht so geläufig ist, dass sie sich so einfach merken können oder wollen. Für mich ist es eine Frage der Einfachheit – und auch des Marketings (Conversion).

  17. #17
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    6.753
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Wie gesagt in weiten Bereichen "philosophisch". In meiner Version habe ich auch www. weggelassen. Das sind genau 4 Zeichen.
    Das macht dann noch ein Zeichen Unterschied zu Deinem Favoriten.
    Es geht also gerade für den Druck noch kürzer und prägnanter:

    example.com/portfolio

    In Deinem zur Verdeutlichung herangezogenen Beispiel hast Du bei der schlecht zu merkenden Variante außerdem noch "https://" vorangestellt.
    Bei so etwas regt sich enorm mein Widerspruchsgeist.
    Damit vergleicht man Äpfel mit Birnen, denn https://www.example.com/portfolio macht in Druckerzeugnissen wahrscheinlich eine ähnlich schlechte Figur, oder sehe ich das falsch?
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




  18. #18
    Gesperrt
    Registriert seit
    14.10.2012.
    Ort
    München
    Beiträge
    63

    Standard

    Zitat Zitat von mlweb Beitrag anzeigen
    …oder sehe ich das falsch?
    Wie gesagt, der Unterschied zwischen

    https://www.example.com/seite.html
    und
    https://www.example.com/seite

    sowie
    www.example.com/seite.html
    und
    www.example.com/seite

    sowie
    example.com/seite.html
    und
    example.com/seite

    sind immer fünf Zeichen, nicht eins.

    Aber ich möchte deinen Widerspruchsgeist nicht bremsen. Du hast letztendlich Recht und wünsch dir noch viel Freude bei dieser “philosophischen” Frage.

  19. #19
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    6.753
    Contao-Projekt unterstützen

    Support Contao

    Standard

    So wie Du es jetzt schreibst schon. Aber schau Dir doch bitte mal Dein erstes Posting dazu an. Was vergleichst Du da?
    Nichts anderes habe ich bemängelt. Einen Vergleich der etwas schlechter darstellt als es in Wirklichkeit ist.

    Tut mir etwas leid, dass Du gerade das nicht siehst.

    Aber egal.
    Geändert von mlweb (06.01.2017 um 14:14 Uhr)
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




  20. #20
    Contao-Nutzer
    Registriert seit
    06.01.2017.
    Beiträge
    17

    Frage Fast das gleiche Problem: möglichen Traling Slash entfernen

    Hi,

    habe das fast gleiche Problem: verhindern, dass eine URL mit Trailing Slash angezeigt wird (egal ob dann 404 oder DuplicateContent kommt).

    Das URL-Suffix ist im Backend entfernt und die .htaccess umgestellt, indem folgender
    PHP-Code:
    RewriteRule .*\.htmlindex.php [L
    geändert und ergänzt wurde in
    PHP-Code:
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule 
    .* index.php [L
    Es funktioniert alles ganz gut. Wenn eine URL mit / am Ende aufgerufen wird, kommt 404.

    Ich schaffe es nun nicht, über eine .htaccess-Anweisung den Trailing Slash abzuschneiden, bzw. auf die entsprechende Seite ohne Trailing Slash umzuleiten.

    Mit dem im Web gefundenen Code
    PHP-Code:
    RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
    RewriteRule . %1/%[R=301,L
    werden zwei Trailing Slashes am Ende entfernt, was ja schon mal ganz gut ist. Einen / am Ende zu entfernen (was wichtiger ist), schaffe ich leider nicht.

    Hat jemand einen Tip, wie man einen Trailing Slash “abfängt”?

    Danke und viele Grüße
    Michael

  21. #21
    Community-Moderatorin & Contao-Urgestein Avatar von mlweb
    Registriert seit
    10.07.2011.
    Beiträge
    6.753
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Ich glaube dafür solltest Du den Thread dann mal von Anfang an lesen. Wenn ich es richtig im Kopf habe wurden hier alle nötigen Einstellungen gepostet.
    Ich habe Dir mit meinen Hinweisen geholfen und Du möchtest Dich bedanken?
    Unterstütze bitte das Contao-Projekt (Button Links)
    Weitere Spendenmöglichkeiten
    ------------------------------------------------------------------------------------------------------
    Contao-Dokumentation: Contao-Handbuch und Contao-Entwickler-Doku
    Contao-Online-Video-Kurse: Contao Academy
    Funktionalität erweitern: Contao-Erweiterungen

    Für Dinge die man mit html5 und css3 lösen kann, braucht man kein javascript.




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

    Standard

    @Michael_C - versuchs mal damit:
    Code:
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [R=301,L]

  23. #23
    Contao-Nutzer
    Registriert seit
    06.01.2017.
    Beiträge
    17

    Standard

    Zitat Zitat von stefan-at-work Beitrag anzeigen
    @Michael_C - versuchs mal damit:
    Code:
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [R=301,L]
    Super! Läuft!

    Ein mögliches kleines Problem mit Duplicate Content ist mir nachträglich noch eingefallen:
    Wird eine nicht existierende Seite mit Trailing Slash aufgerufen, gibt das dann einen 301 auf die gleiche Seite ohne Trailing Slash. Und die gibt dann einen 404-Error aus, weil sie ja nicht existiert.

    Vielleicht würde folgender zusätzlicher Schnipsel helfen
    Code:
    RewriteCond %{REQUEST_FILENAME} !-f
    Soweit ich weiß, bedeutet das, dass die nächste RewriteRule nur gilt, wenn die Datei nicht existiert. Ich probiere es morgen mal aus.

    Nochmal Danke für die Hilfe, stefan-at-work!

  24. #24
    Contao-Nutzer
    Registriert seit
    06.01.2017.
    Beiträge
    17

    Standard

    ...hm, meine zusätzliche Zeile hat natürlich nichts geholfen

    Weiterhin wird für eine URL, die es gar nicht gibt, erst mal ein 301 ausgegeben, anstatt gleich ein 404.

    example.com/nichtexistierend/ ? 301-Redirect ? example.com/nichtexistierend ? 404-Error ? (404-Seite)

    Weiß jemand, wie man per .htaccess für alle nicht existierenden Dateien und Verzeichnisse einen 404 ausgeben und dann für alle anderen Seiten den Trailing-Slash entfernen kann?

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

    Standard

    Dass die Seite nicht existiert kann dein Webserver ja nicht wissen.

  26. #26
    Contao-Nutzer
    Registriert seit
    06.01.2017.
    Beiträge
    17

    Frage

    Zitat Zitat von Spooky Beitrag anzeigen
    Dass die Seite nicht existiert kann dein Webserver ja nicht wissen.
    Wie kommt dann ein 404-Error zustande?

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

    Standard

    Zitat Zitat von Michael_C Beitrag anzeigen
    Wie kommt dann ein 404-Error zustande?
    Der kommt ja dann von Contao.

  28. #28
    Contao-Nutzer
    Registriert seit
    06.01.2017.
    Beiträge
    17

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Der kommt ja dann von Contao.
    Kann man es dann nicht bewerkstelligen, dass die Contao erst den 404 ausgibt (wenn eine Seite oder Datei nicht existiert) und dann erst die Regel von stefan-at-work greift?
    Code:
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [R=301,L]

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

    Standard

    Alles was in der .htaccess passiert wird zuerst vom Webserver (Apache in diesem Fall) ausgeführt. Dann erst wird das PHP Script ausgeführt. Apache leitet auf die URL ohne trailing Slash weiter und unter dieser neuen URL wird dann das PHP Script, also Contao, ausgeführt. Contao überprüft dann, ob es zu dieser URL eine gültige Seite gibt und wenn nicht, zeigt es eben die 404 Seite.

  30. #30
    Contao-Nutzer
    Registriert seit
    06.01.2017.
    Beiträge
    17

    Standard

    Dann gibt es also keine Lösung dafür, einen ungewollten Trainling Slash bei existierenden Dateien abzuschneiden, während nicht existierende Daten gleich einen 404-Error ausgeben?

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

    Standard

    Ich wüsste zumindest nicht wie. Warum willst du das unbedingt? Das spielt doch im Endeffekt keine Rolle.

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

    Support Contao

    Standard

    Eben, der Besucher bekommt den 301 ja gar nicht mit, außer dass sich die URL ändert. Das ist auch nicht anders als z.B. eine Umleitung von http://domain.tld auf http://www.domain.tld, da hat sich auch bisher noch keiner dran gestört .

  33. #33
    Contao-Nutzer
    Registriert seit
    06.01.2017.
    Beiträge
    17

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Ich wüsste zumindest nicht wie. Warum willst du das unbedingt? Das spielt doch im Endeffekt keine Rolle.
    Das spielt meiner Meinung nach schon eine wichtige Rolle. Wenn
    www.example.com/blah/
    und
    www.example.com/blah
    existieren und den gleichen Inhalt haben, dann ist das Duplicate Content, den es laut Google zu vermeiden gilt.
    Wenn man bei der www.example.com/blah/ erst mit 301 auf www.example.com/blah umleitet, die aber gar nicht existiert, dann kann das ebenfalls als Duplicate Content interpretiert werden. Und es ist eine Verschwendung von “Crawl-Equity”.

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

    Standard

    Zitat Zitat von Michael_C Beitrag anzeigen
    Das spielt meiner Meinung nach schon eine wichtige Rolle. Wenn
    www.example.com/blah/
    und
    www.example.com/blah
    existieren und den gleichen Inhalt haben, dann ist das Duplicate Content, den es laut Google zu vermeiden gilt.
    Diesen "Duplicate Content" vermeidest du ja bereits durch den 301 Redirect von www.example.com/blah/ auf www.example.com/blah.



    Zitat Zitat von Michael_C Beitrag anzeigen
    dann kann das ebenfalls als Duplicate Content interpretiert werden.
    Wenn eine URL einen 301 Redirect zurück gibt, wird bzw. kann unter dieser URL nichts indiziert werden. Der Content existiert daher nur einmal.

    Darüberhinaus ist www.example.com/blah/ und www.example.com/blah kein böswilliger Duplicate Content und wird daher wahrscheinlich auch nicht als solcher gewertet.



    Zitat Zitat von Michael_C Beitrag anzeigen
    Und es ist eine Verschwendung von “Crawl-Equity”.
    Das spielt sicher keine große Rolle. Auf deiner eigenen Website taucht sicher nirgendwo eine URL mit trailing Slash auf, weder in der sitemap.xml, welche du ja an Google submitest, noch irgendwo sonst auf der Website (sofern du nicht selbst manuell solch einen Link gesetzt hast). Etwaige Crawler kommen daher nicht von selbst auf die Idee, eine URL auf deiner Seite plötzlich mit trailing Slash aufzurufen.

  35. #35
    Contao-Nutzer
    Registriert seit
    06.01.2017.
    Beiträge
    17

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Das spielt sicher keine große Rolle. Auf deiner eigenen Website taucht sicher nirgendwo eine URL mit trailing Slash auf, weder in der sitemap.xml, welche du ja an Google submitest, noch irgendwo sonst auf der Website (sofern du nicht selbst manuell solch einen Link gesetzt hast). Etwaige Crawler kommen daher nicht von selbst auf die Idee, eine URL auf deiner Seite plötzlich mit trailing Slash aufzurufen.
    Ok, klingt vernünftig. Nervös macht mich aber, dass zwei der bekanntesten Onpage-SEO-Tools (will hier keine Werbung machen) das ernsthaft bemängeln. Die sagen, dass meine 404-Seiten so nicht korrekt funktionieren: nicht existierende Seiten, die einen 301 ausgeben, seien gravierende Fehler.

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

    Standard

    Wie ermitteln diese Tools eine nicht existierende Seite?

  37. #37
    Contao-Nutzer
    Registriert seit
    06.01.2017.
    Beiträge
    17

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Wie ermitteln diese Tools eine nicht existierende Seite?
    Ein Tool macht es so:

    Status Code: 301
    (zufällig) getestete URL:
    https://www.example.com/7d5c8cde0d95...79214d6ec838e/
    The random page redirects to:
    https://www.example.com/7d5c8cde0d95...a79214d6ec838e

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

    Standard

    Zitat Zitat von Michael_C Beitrag anzeigen
    Die sagen, dass meine 404-Seiten so nicht korrekt funktionieren: nicht existierende Seiten, die einen 301 ausgeben, seien gravierende Fehler.
    Das kannst du ignorieren. Damit meinen diese "SEO Tools", dass eine nicht gefundene Seite nicht einfach einen Redirect auf die Startseite machen soll. Das ist aber nicht der Fall bei dir (außer du hast deine 404 Seite tatsächlich so konfiguriert).

    Wenn du aber den 301 Redirect für einen trailing Slash bei einer nicht existierenden Seite tatsächlich verhindern willst, dann musst du das über Contao machen, statt über den Webserver. Du müsstest dazu den getPageIdFromUrl Hook verwenden und dort im Prinzip überprüfen, ob es ein leeres auto_item Fragment gibt (das legt Contao dann nämlich so an, wenn ein leeres URL Suffix eingestellt ist und eine URL wie zB example.org/foo/ aufgerufen wird). Oder du überprüfst einfach, ob die angeforderte URL einen trailing Slash hat. Ist das der Fall, müsstest du mit
    PHP-Code:
    if (($objPage =\PageModel::findPublishedByIdOrAlias($arrFragments[0])) !== null
    überprüfen, ob die Seite nun existiert und wenn ja, machst du einen Redirect mit
    PHP-Code:
    \Controller::redirect($objPage->getFrontendUrl()); 
    Existiert die Seite nicht gibst du einfach null zurück - Contao generiert dann die 404 Seite.
    Geändert von Spooky (09.01.2017 um 12:31 Uhr)

  39. #39
    Contao-Nutzer
    Registriert seit
    06.01.2017.
    Beiträge
    17

    Standard

    @Spooky – wow, Danke für den Profi-Tipp!
    Ich werde versuchen, das umzusetzen.

  40. #40
    Gesperrt
    Registriert seit
    14.10.2012.
    Ort
    München
    Beiträge
    63

    Standard

    Zitat Zitat von mlweb Beitrag anzeigen
    Ich meine die Unsitte Urls ohne Suffix (.html) zu nutzen.
    @mlweb
    URLs ohne Suffix sind bei den Top 500 Websites dieser Welt schon seit längerer Zeit weit verbreitet (Wikipedia, Youtube, Amazon, Apple, Microsoft, Twitter…). Nur du hast es anscheinend noch nicht gemerkt.

    Dass du in diesem Thread weniger etwas beitragen, sondern lieber nur andere zurechtweisen willst, ist spätestens nach deinem Spruch an einen anderen Thread-Teilnehmer klar:

    Zitat Zitat von mlweb Beitrag anzeigen
    Ich glaube dafür solltest Du den Thread dann mal von Anfang an lesen. Wenn ich es richtig im Kopf habe wurden hier alle nötigen Einstellungen gepostet.
    @mlweb
    Die Anschlussfrage war sehr wohl sinnvoll und wurde vorher so auch nicht schon beantwortet. Sonst hätten z.B. Community-Moderator stefan-at-work und Contao-Urgestein Spooky auch nicht mit Vorschlägen geholfen. Ich glaube, du hättest den Thread mal lieber fachlich lesen sollen, anstatt ihn nur nach Kritikpunkten zu scannen. Wer helfen will (und kann!), ist klar im Vorteil.

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
  •