Verzeichnis umleiten

Sehr geehrte Mitglieder.

Ich würde gerne ein älteres, nicht mehr vorhandenes Verzeichnis ( Kategorie ) meines Shops auf ein anderes Verzeichnis umleiten, um viele 404 Fehler loszuwerden.

Im Forum habe ich viele Beiträge gelesen, in denen Domains, oder Sub Domains mittels htaccess umgeleitet werden, jedoch keinen Eintrag gefunden, wie die Syntax für das Umleiten eines Verzeichnisses lautet. Ich würde mich daher freuen, wenn mir jemand diese Zeilen posten kann.

Eine weitere Frage in diesem Zusammenhang lautet:
Ist eine solche Einstellung tatsächlich nur über den manuellen Eintrag in die htaccess möglich, oder gibt es vereinfachte Wege?
( Nicht das ich einen derartigen Eintrag in der htaccess zu aufwendig finde, ich interessiere mich lediglich für Alternativen )

Eine letzte Frage in diesem Zusammenhang:

Theoretisch könnte ich das crawlen des alten Verzeichnisses mittels robots.txt verhindern und so auch die 404 Fehler loswerden. Ebenso kann ich die alten Links in den Webmaster Tools einzeln entfernen. In beiden Fällen würde ich jedoch einiges an Traffic verlieren.
Bin mir nicht ganz sicher, welches Vorgehen hier das Best mögliche ist.

Ich bedanke mich für jegliche Antworten im Voraus.

Hochverehrter @proqd,

“Verzeichnisse” kann man nicht umleiten, das geht nur mit URLs. Wenn diese Seiten nicht mehr existieren, weil die komplette Kategorie weggefallen ist, dann ist es eben so. Es macht ja auch gar keinen Sinn, auf Gartenschläuche weiterzuleiten, weil die Rasenmäher ausverkauft sind. Wichtig ist, dass diese URLs nicht noch irgendwo (z.B. intern) verlinkt sind.

Schau Dir auch mal das hier an, gleich die ersten beiden Suchergebnisse bringen Bingo-Trefferlein :wink:

Gruß

wenn in deiner Kategorie ‘aktuelle-angebote’ noch Artikel zB im Google-Index sind die ein 404 erzeugen kannst Du alle Artikel auf die Kategorie selbst umleiten

füge in der .htaccess am Ende vor </IfModule> ein:

RewriteCond %{REQUEST_URI} aktuelle-angebote/ [NC]
RewriteRule ^(.html)$ aktuelle-angebote/ [NC,R=301]

Der Parameter [R=301] sorgt dafür dass Google auch seinen Index aktualisiert!

eine einfachere Möglichkeit ist die Verwendung des OXID-internen error-handlings.

Dazu im Verzeichnis modules am Ende der functions.php folgendes einfügen:

function error_404_handler($sUrl = ‘’) {

$myConfig = oxRegistry::getConfig();
$sHomeUrl = $myConfig->getShopUrl();

// Weiterleitung basierend auf einem Suchbegriffin der Uri
$sSuchstr = “mein-Suchberiff”;
$sNewPath = “/neue-katekorie/”;
if (stripos($sUrl, $sSuchstr) !== false) {
$sNewUrl = $sHomeUrl. $sNewPath;
header(“Location: $sNewUrl”, true, 301);
exit;
}

// Weiterleitung aller Detailseiten auf die Kategorieseite
if (stripos($sUrl, ‘.html’)) {
$iPos = strrpos($sUrl, DIRECTORY_SEPARATOR);
if ($iPos) {
$sNewUrl = $sHomeUrl . DIRECTORY_SEPARATOR . substr($sUrl, 0, $iPos);
header(“Location: $sNewUrl”, true, 301);
exit;
} else {
// Weiterleitung von toten Links im root
$sNewUrl = $sHomeUrl;
header(“Location: $sNewUrl”, true, 301);
exit;
}
}

// dies ist die Standard-Weiterleitung des OXID eShop
oxRegistry::getUtils()->handlePageNotFoundError($sUrl);
}

Zur Erklärung:
-> mit der ersten Weiterleitung kann man anhand eines Suchbegriffes auf eine Datei/Kategorie weiterleiten
Wenn mehrere Suchbegriffe weitergeleitet werden sollen einfach diesen Abschnitt kopieren

-> mit der zweiten Weiterleitung werden nicht vorhandene Detalseiten auf die Kategorie-Seite weitergeleited

Hallo!

Leider funktioniert das so nicht.

Bereits Dreamweaver zeigt mir einen Syntax Error an.

Stelle ich die Datei online, wird der gleiche Fehler angezeigt.

Parse error: syntax error, unexpected ‘if’ (T_IF) in /xxx/modules/functions.php on line 34

in Zeile $sNewPath = “/neue-katekorie/”; fehlte das Komma am Ende

Das wars. Jetzt funktioniert es.
Kann mich nur nochmal bedanken. Sehr professionell.