Διατήρηση παλιών συνδέσμων σε νέο cms (Drupal)

Διατήρηση παλιών συνδέσμων σε νέο cms (Drupal)

Το ένα cms βγαίνει μετά το άλλο, το είναι είναι καλύτερο από το άλλο, το άλλο είναι πιο γρήγορο, το άλλο είναι πιο εύκολο κ.ο.κ. Σε μια τέτοια κατάσταση, όπου αλλάζουμε τα cms, πολλές φορές, χάνουμε επισκέπτες εξαιτίας της αλλαγής του url των παλιών συνδέσμων. Το ίδιο συμβαίνει και με το Drupal, αλλά μπορούμε να κρατήσουμε τους επισκέπτες πυ έχουν τον παλιό σύνδεσμο με λίγες γραμμές στο .htaccess.

Για παράδειγμα, στο νέο kalkanis.gr χρησιμοποιείται Drupal ενώ στο παλαιότερο xoops. Οι διαδρομές δεν έχουν καμία σχεσή μεταξύ τους, αλλά τα παλιά links πρέπει να δουλέψουν. Έτσι το παλιό http://www.kalkanis.gr/modules/article/view\.article\.php/10 πρέπει πλέον να δείχνει στο http://www.kalkanis.gr/node/4

Για να το πετύχουμε αυτό αρκεί να επεξεργαστούμε το .htaccess που βρίσκεται στο root folder του site, και με προσοχή να προσθέσουμε την γραμμή:

RewriteRule ^modules/article/view\.article\.php/10 http://www.kalkanis.gr/node/4 [R=301,L]

αμέσως μετά τα:

<IfModule mod_rewrite.c>
  RewriteEngine on

και πριν τις ανακατευθύνσεις που κάνει το Drupal.

Αν δεν θέλουμε να κάνουμε ανακατεύθυνση για κάθε σελίδα, αλλά για ολόκληρη ομάδα σελίδων (παραπλήσιο url) τότε αρκεί να βάλουμε κάτι σαν:

RewriteRule ^modules/article/(.*)$  http://www.kalkanis.gr/articles [R=301,L]

Τέλος αν το παλιό url έχει παραμέτρους (πχ ? xy=12) τότε κάνουμε κάτι όπως το:

  RewriteCond %{THE_REQUEST} xy=2
  RewriteRule . http://www.kalkanis.gr/node/15? [R=301,L]