2012-04-09 3 views
0

Ich werde ein neues Design/Website-Struktur für einen Kunden implementieren, aber ich habe ein kleines Problem. Da die URLs, die ich erstellt habe, ein bisschen anders sind, erwarte ich ein Problem mit den SEO-Rankings aufgrund der vielen defekten URLs. Meine Idee ist, die vorhandenen URLs (von der alten Seite) mit den neuen URLs, die ich erstellt habe, abzugleichen.Matching zwei Spalten aus einer Datenbank

Das Problem, das ich gestolpert habe, ist die folgende:

Die alten URLs sind wie http://www.example.com/category/numeric_id-item-name_item_code.html und der neue URLs ist wie http://www.example.com/item_name-item_code.

In MySQL ich eine neue Datenbank auf die enthält erstellt erste Spalte die item_name und item_code von der alten Website und eine zweite Spalte die gleichen Informationen aus der neuen Datenbank.

Die Idee ist wie folgt: Beispiel: Nehmen wir an, wir haben ein Element Federblatt mit dem Code SL34 benannt. Die alte URL wäre etwa http://www.example.com/springs/53-spring-leaf-sl34.html. diese URL Zur Anpassung gibt es 3 Möglichkeiten:

  1. Wenn das Produkt in der neuen Website ist http://www.example.com/spring-leaf-sl34
  2. Falls sie den Namen http://www.example.com/iron-spring-leaf-sl34
  3. das Produkt nicht in der neuen Website Bei Änderung: http://www.example.com/springs

Ich brauche Hilfe beim Erstellen dieser Übereinstimmungen.

Vielen Dank.

+0

Wenn Artikelcode und Produktname beide alphanumerisch sind, wie unterscheiden Sie dann, welche ist welche? –

+0

Hmmm ... du hättest mir vielleicht eine Idee geben können ... das einzige, was in diesem Beispiel stabil ist, ist der Produktcode ... Also, ich denke, ich könnte die Produktcodes vergleichen und das als Kriterium beibehalten Tabelle wie "Matching_id Old_URL New_URL". –

+0

Falls dies nicht funktioniert, ist es möglich, die URL auf Code-Ebene zu prüfen (mit PHP + Datenbank) und eine 301-Weiterleitung aus dem Code herauszugeben ... etwas, was stackoverflow tut. –

Antwort

0

Also, es scheint, habe ich eine Art schnelle Lösung gefunden:

CREATE 
    VIEW `database`.`url_view` 
    AS 
(SELECT old_table.old_url, new_table.new_url FROM old_table LEFT JOIN new_table ON old_table.product_code=new_table.product_code); 

Dadurch werden die alten URLs mit den neuen assoziieren, und, wenn eine alte URL (Produkt) nicht mehr verfügbar ist fügt einen (NULL) Eintrag ein.