2011-09-09 4 views
0

J'ai un site qui a été créé il y a longtemps en utilisant simple asp. C'est un site d'hôtel. Il contient des pages de type liste et des pages d'hôtels individuelles. Actuellement mon site est hébergé sur un serveur Windows qui supporte aussi PHP (mais sans support .htaccess évidemment). Il y a quelques mois, j'ai commencé à recoder l'ensemble du site en utilisant php/mysql. D'abord, j'ai créé les nouvelles pages de type liste, j'ai fait les redirections 301 nécessaires sur mon panneau de contrôle d'hébergement, afin de garder les bons classements des moteurs de recherche. Ces pages ont été bien indexées par Google au cours des derniers mois, donc elles sont OK.masse 301 rediriger avec .htaccess après la migration du site

Maintenant, je suis prêt à recoder les pages d'hôtels restantes (environ 400), et maintenant je veux migrer l'ensemble du site vers un serveur Apache, qui supporte .htaccess.

Il existe deux versions linguistiques des pages de l'hôtel, anglais et allemand.
Les vieilles pages d'hôtel ASP en anglais se trouvaient au www.mysite.com/hotel/hotel-name.asp et je veux les rediriger vers www.mysite.com/hotel/hotel-name.php, donc dans ce cas, seule l'extension du fichier change de .asp à .php.

Les anciennes pages de l'hôtel ASP allemand se trouvaient dans www.mysite.com/hotel/deutsch/hotel-name.asp et je veux les rediriger vers www.mysite.com/hotel/hotel-name. de.php, donc dans ce cas, non seulement l'extension de fichier change de .asp à .php, mais aussi les noms de fichiers et les chemins.

Ma question est: comment puis-je effectuer les redirections de masse nécessaires avec .htaccess?

Merci d'avance.

Répondre

0

Cela devrait faire l'affaire:

RewriteRule /hotel/deutsch/(.+?)\.asp /hotel/$1.de.php [R=301,L] 
RewriteRule /hotel/(.+?)\.asp /hotel/$1.php [R=301,L] 

Edit: Désolé, j'ai manqué que les pages en langue allemande sont * .de.php. J'ai mis à jour la réponse pour utiliser des réécritures séparées pour les pages en anglais et en allemand.

0

Cela fonctionne:

RewriteEngine On 

# redirect German version 
RewriteRule ^hotel/deutsch/(.+)\.asp$ http://www.mysite.com/hotel/$1.de.php [R=301,L] 

# redirect English version 
RewriteRule ^hotel/(.+)\.asp$ http://www.mysite.com/hotel/$1.php [R=301,L] 

Ordre des règles est important. D'abord, nous associons les versions allemandes et seulement les pages anglaises (comme le patron de l'URL pour les pages anglaises est plus large et correspondra également aux URLs allemandes qui finiront dans une mauvaise redirection).

+0

@Yaelede Alors ... cela a-t-il fonctionné pour vous? – LazyOne