.html Endung in der URL bei Webseiten mit mehrere Verzeichnisse entfernen

  • Was muss ich in in den Verzeichnissen im WebhostingControlPanel (WCP), .htaccess und/oder in den html-Codes machen, dass die URL bei Webseiten mit mehrere Verzeichnisse ohne .html am Ende angezeigt wird, also statt z. B. meine-webseite.de/thema/erstes-thema.html sollte die URL so ausschauen: meine-webseite.de/thema/erstes-thema ?


    Ich habe es schon mit der .htaccess-Datei versucht, die unter dem Link erreichbar ist: https://gist.github.com/davidvandenbor/f5a2c18c472ceb68d0dd. Diese .htaccess-Datei habe ich noch etwas abgeändert.


    Die Webseite greift dann aber immer auf den Verzeichnis statt auf die html-Datei und diese Seite ist somit nicht erreichbar. Die URL hat ein "/" am Ende und schaut z. B. so aus: meine-webseite.de/thema/



    Vielen Dank im Voraus

  • Guten Tag,


    befindet sich denn das Verzeichnis "thema" auf dem Webspace? Wenn ja, dann wird der genannte Code nicht funktionieren. Im Grunde erstellt mod_rewrite nur Weiterleitungen auf bestehende Dateien. Ist eine Datei nicht vorhanden, funktioniert die Weiterleitung nicht bzw. endet in einem 404. Bei deinem Beispiel-Code wird auch geprüft, ob es sich beim Dateipfad um ein Verzeichnis handelt.


    Du könntest mal folgendes versuchen:

    Apache Configuration
    RewriteCond %{REQUEST_FILENAME} !-d          # kein Verzeichnis
    RewriteCond %{REQUEST_FILENAME}\.html -f     # gibt es die Datei?
    RewriteCond %{REQUEST_URI} ^(.+)\.html$      # URI Request mit Suffix .html
    RewriteRule (.*)\.html$ /$1 [R=301,L]        # Redirect von index.html auf index

    Mit freundlichen Grüßen


    D. Bachmann


    mtwb | make the web better

    magento | typo3 | webdevelopment | seo | hosting

  • Hallo Herr Bachmann,


    vielen Dank für deine Antwort und den Code. Wenn ich deinen Code auf dem Webspace in .htacess einfüge, dann komme ich jetzt nicht einmal auf die Startseite der Webseite. Es kommt stattdessen die Fehlermeldung "500 Internal Server Error". Muss ich vielleicht etwas in den Hosting-Einstellungen ändern?


    Ich habe auch einmal vor deinem Code folgendes ergänzt:

    Apache Configuration
    RewriteEngine On
  • Vielen Dank für den Hinweis.


    Leider ändert sich an der URL nichts, wenn ich den folgenden Code in .htaccess einfüge:


    Apache Configuration
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d         
    RewriteCond %{REQUEST_FILENAME}\.html -f    
    RewriteCond %{REQUEST_URI} ^(.+)\.html$      
    RewriteRule (.*)\.html$ /$1 [R=301,L]


    In welchem Verzeichnis muss zum Beispiel "thema.html" und das Verzeichnis "thema" auf dem Webspace sein?

  • Noch eine Möglichkeit, die mir einfällt – für jede HTML-Datei einen Ordner erstellen und die entsprechende HTML-Datei als index.html in diesem Ordner ablegen.


    Schöner und eleganter ist aber auf jeden Fall die Weg über die .htaccess Datei.

    VPS 500 G8 Plus | VPS Karneval 2020 | Webhosting EiWoMiSau


    Dieses Gebäude hat mir die Vorfahrt genommen! *hup*

  • Danke für eure Nachrichten. Da es bei mir mit .htaccess nicht funktionierte, habe ich jetzt die folgende Lösung angewandt:

    für jede HTML-Datei einen Ordner erstellen und die entsprechende HTML-Datei als index.html in diesem Ordner ablegen.