Nachbau URL Struktur ".html on pages" / "htaccess" / "index.html"

  • Hallo,

    ich versuche in der aktuellen Version 3.1 eine existierende Site so nachzubauen, dass sich die URLs nicht ändern. Das alles passiert bisher lokal, so dass ich die Adresse des Blogs nicht angeben kann.

    So gehe ich bisher vor:

    Ich verwende das Plugin ".html on pages" (http://www.introsites.co.uk/wordpress/html…ges-plugin.html) mit Permalinks und benutzerdefinierter Struktur "/%postname%.html/". Das funktioniert im Prinzip wunderbar.

    Nun bin ich auf ein Problem gestoßen. Die bisherige Site hat z.B. folgende URLs:

    http://www.site.de/page1.html
    http://www.site.de/folder/page2.html
    http://www.site.de/folder/index.html

    Um die letzten beiden nachzubauen habe ich eine Seite Folder (URL http://www.site.de/folder.html) angelegt, die aber keinen Inhalt hat bzw. nicht genutzt werden soll. Unter dieser Seite habe ich dann eine Seite Page2 und eine Seite Index angelegt. Auch das funktioniert wunderbar, sie sind über die oben genannten URLs zu erreichen.

    Nun führen aber in der ursprünglichen Site die drei folgenden URLs auf die gleiche Seite:

    http://www.site.de/folder
    http://www.site.de/folder/
    http://www.site.de/folder/index.html

    Das möchte ich wieder erreichen, bekomme es aber nicht hin.

    Meine erste Idee wäre es, über mod_rewrite zu erreichen, dass die URL überprüft wird, ob sie eine Dateiendung enthält (.html). Wenn nein, dann ein "index.html" bzw. "/index.html" zu ergänzen und das so an Wordpress zu übergeben. Aber wie mache ich das? Und ist das überhaupt der richtige Weg?

    Wäre toll, wenn mir jemand von Euch helfen könnte. Meine htaccess sieht aktuell so aus:

    # BEGIN WordPress

    <ifmodule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </ifmodule>

    # END WordPress

    Herzlichen Dank und Grüße

    Hans

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Hallo,

    leider bisher keine Antwort, aber ich habe mir zumindest mal selbst was gebaut:

    Über die htaccess fange ich ab, ob die URI mit einer Dateiendung endet:

    Falls nicht, leite ich weiter auf eine Datei forward.php:

    PHP
    <?php
    if (isset($_GET['target'])){
        $target = $_GET['target'];
        if (substr($target,strlen($target)-1,1) != '/') $target.='/';
        $target.='index.html';
        Header("Location: http://www.site.de/".$target);
        exit(); 
    }
    ?>

    Das scheint zu funktionieren. Ob es auch die beste Lösung ist? Falls jemand von Euch noch Vorschläge oder Anmerkungen hat, dann freue ich mich.

    Grüße & Dank

    Hans

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!