Frage

Ich zog eine Ex-Website auf Basis von Joomla zu Wordpress. Import funktionierte gut, aber das Problem ist, dass die alten Links nicht mehr funktionieren. Da es nur 50 oder so Artikel ist, dachte ich, eine gute Idee, eine Regel für jede Stelle zu setzen (in .htaccess).

Nun ... Nicht immer sind die Dinge, wie Sie wollen, leitet so nicht funktionieren überhaupt: (

Alt joomla Links sieht wie folgt aus:

http://site.com/index.php?option=com_content&task=view&id=49&Itemid=29
http://site.com/index.php?option=com_content&task=view&id=42&Itemid=29
http://site.com/index.php?option=com_content&task=view&id=68&Itemid=29

Und müssen übersetzt werden:

http://site.com/?p=23
http://site.com/?p=24
http://site.com/?p=25
  • im Grunde keine Beziehungen zwischen dem alten und neuen Links, ich denke also nicht ein regulärer Ausdruck hilft

  • sowohl alte als auch neue Seite auf der gleichen Domain

Ok, das Problem ist, dass jede Regel habe ich versucht habe (und ich habe eine Menge ausprobiert!), Keine gearbeitet. i in einigen Fällen 500-Fehler erhalten, aber die meisten mal die Umleitung nicht funktioniert.

Also, alle von euch hatten gleiches Problem? Ich weiß nicht notwendig Mangel schön Permalinks haben, aber wenn ich kann, das wird besser. Das Problem ist, dass ich viele Backlinks zu alten URLs haben, und ich will nicht, sie verlieren.

Vielen Dank Jungs!

War es hilfreich?

Lösung

Da die Umwandlung Ihrer Website über Wordpress relativ neu ist, ist es etwas, was Sie mit dem alten Joomla zu verhindern! IDs in Ihrer WP-Datenbank-Tabelle? Dies würde ermöglichen es Ihnen ziemlich leicht einen regulären Ausdruck zu verwenden.

Eine andere Möglichkeit wäre eine separate PHP-Skript zu erstellen, die das Joomla behandelt! URLs leitet dann den Wordpress diejenigen. Also würden Sie einen regulären Ausdruck in der Apache-Konfigurations Erkennung index.php? Option = com_content & task = view URLs, um den Wert für ‚id‘ zu finden, dann someotherscript.php Umleiten das würde eine Karte Ihrer IDs von Joomla! Wordpress. Dieses Skript würde dann Header verwenden ( 'Ort:? P ='. $ Id). Auf die richtige Seite in Wordpress zu umleiten

Andere Tipps

Danke für die Idee! Ich habe dies in index.php (WordPres default):

if(isset($_GET['option'])) {
    if(is_numeric($_GET['id'])){
        header ('HTTP/1.1 301 Moved Permanently');
        header("Location: http://www.site.com/?p={$_GET['id']}");
        die();
    }else {
        die('Hacking attempt');
    }
}

Und funktioniert wie ... GREAT! : D

Eine weitere Option könnte gewesen, eine Umleitung Plugin zu verwenden, um dies zu tun für Sie. Speichert die Lösung jedes Mal brechen Sie ändern oder Ihr Thema aktualisieren.

Ich hatte ein sehr ähnliches Problem mit einem unbekannten CMS Joomla. Wenn Sie es mit .htaccess in Apache tun wollen gibt es einen Weg, aber wenn es absolut keine Beziehung zwischen der alten URL und die neuen URL, als Sie zwei Zeilen für jede URL Paar schreiben.

RewriteEngine On
# now the first Example
RewriteCond %{QUERY_STRING} ^option=com_content&task=view&id=49&Itemid=29$
RewriteRule ^index\.php$ /?p=23 [R=301,L]
# Repeat last two lines for all your URLs

Ich bin mir nicht sicher, ob Sie wirklich diese Art von neuen URLs haben. Persönlich würde eine SEF-URL besser z.B .: https://example.com/path/to/new/page

Wenn Sie dies als Sie tun möchten, kann es tun, aber Sie müssen eine hinzufügen? am Ende des Ziels sonst der alte Abfrage-String würde Sie wie diese neues Ziel hinzugefügt werden: https://example.com/path/to/new/page?option=com_content&task=view&id=49&Itemid=29 so in diesem Beispiel tut es wie folgt:

RewriteCond %{QUERY_STRING} ^option=com_content&task=view&id=49&Itemid=29$
RewriteRule ^index\.php$ /path/to/new/page? [R=301,L]
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top