Zur Navigation

Zahlreiche Weiterleitungen innerhlab der htaccess

1 Stefan5000 (Gast)

Hallo,

im Zuge eines Relaunchs ändert sich die Struktur einer Joomla-Webseite wie folgt: domain.de/123.html wird zu domain.de/Hauptkategorie/Unterkategorie/123

Im Prinzip nichts besonderes. Jedoch umfasst die Seite ca. 3000 URL's die entsprechend umgeleitet werden müssen. Aus diesem Grund würde ich mich über einen fundierten Ratschlag Ihrerseits freuen:

Macht eine Weiterleitung per htaccess hier Sinn oder ist die PHP-Variante sinnvoller? Wie müsste ich beim PHP-Header vorgehen? Nach meinem derzeitigen Kenntnisstand müsste ich innerhlab der index.php im Stammverzeichniss per php den Dateinamen der auzurufenden Seite (123) in ein variable schreiben und diese in die neue Strukur übergeben, richtig?

Für Ihre Antwort danke ich vorab.

19.11.2018 14:27

2 Jörg

Ist nur die Zahl "123" variabel und entspricht sich innerhalb der Quell- und Ziel-URL? dann würde eine einzelne Weiterleitungsregel per mod_rewrite in der .htaccess Datei reichen:

RewriteEngine on

RewriteRule ^([0-9]+)\.html$ https://example.com/Hauptkategorie/Unterkategorie/$1 [R=301,L]

19.11.2018 14:56

3 Stefan5000 (Gast)

Hallo Jörg, vielen Dank für Ihre schnelle Antwort.

Vielleicht hätte ich noch erwähnen sollen, dass es sich natürlich um verschiedene Haupt- und Unterkategorien handelt. Die Datei 567.html müsste somit zur domain.de/Hauptkategorie_03/Unterkategorie_02/567 weitergeleitet werden...

19.11.2018 16:39

4 Jörg

Wenn du die Zahlen einzeln verschiedenen Verzeichnissen zuordnen musst, würde ich auf ein Redirect-Script rewriten, und dort die Zuordnung vornehmen, z.B. so:

.htaccess
RewriteEngine on

RewriteRule ^([0-9]+)\.html$ redirect.php?id=$1 [L]

redirect.php
<?php

if (empty($_GET['id'])) {
    exit;
}

$dir = false;

switch ($_GET['id']) {
case 123:
case 124:
    $dir = '/Hauptkategorie/Unterkategorie';
    break;
}
case 566:
case 567:
case 568:
    $dir = '/Hauptkategorie_03/Unterkategorie_02';
    break;
}

if ($dir) {
    header('Location: https://example.com' . $dir . '/' . $id, true, '301');
}

Das hat den Vorteil, dass bei normalen Aufrufen die .htaccess und index.php entlastet werden und die index.php nicht nach jedem Update angepasst werden muss.

19.11.2018 17:33 | geändert: 19.11.2018 17:34

5 Stefan5000 (Gast)

Hallo Jörg,

das ist in der Tat ein hilfreicher Ansatz. Vielen Dank nochmal.

19.11.2018 17:54

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]