Redirections 301 de vos anciennes urls

Votre url ne vous plaisez plus, vous avez décidé de la modifier. Oui mais sans perdre le référencement que celle-ci avait engendrée, c’est pourquoi vous avez choisi la fameuse redirection 301 qui indique aux moteurs (notamment notre cher ami Google) que votre page a définitivement « déménagée ».

Il existe différentes façons de réaliser cette redirection 301 :

  • via le htaccess
  • via le langage de programmation utilisé

Htaccess

Le fichier .htaccess est la solution de base et à mon sens la plus propre car interprétée avant toutes autres choses.

Pour cela vous pouvez réaliser la redirection 301 de 3 manières différentes. Si votre url est de la forme http://www.mon-site.com/mon-ancienne-url, le plus simple est d’utiliser :

RedirectPermanent /mon-ancienne-url http://www.mon-site.com/ma-nouvelle-url

Si votre url est de la forme http://www.mon-site.com/mon-ancienne-url mais que cette dernière sera réécrite pour que le moteur de votre site puisse la comprendre, vous ne pouvez plus utiliser la méthode ci-dessus mais celle-ci :

RewriteRule ^mon-ancienne-url(.*)$ http://www.mon-site.com/ma-nouvelle-url.html$1 [QSA,L,E,R=301]

Enfin si votre url contient des paramètres (indications placées derrière le ? de l’url) déterminants pour la redirection vous pouvez utiliser la méthode qui suit :

RewriteCond  %{QUERY_STRING} ^le-parametre-a-matcher$
RewriteRule ^le-nom-du-fichier-execute\.son-extension$ http://www.mon-site.com/ma-nouvelle-url [L,E,R=301]

Remarque 1 : RedirectPermanent n’utilise pas d’expressions régulières donc pas besoin d’échapper les caractères spéciaux (« . », « ? », …). Cependant RewriteCond et RewriteRule utilisent tous les deux les expressions régulières donc pensez bien à échapper vos caractères spéciaux avec « \ » devant.

Remarque 2 : Suivant où est placé votre site internet et votre configuration de serveur vous devrez peut-être ajouter ces trois lignes :

Options +FollowSymLinks
RewriteEngine On
RewriteBase /sous-dossier-du-site/

Le langage de programmation utilisé

Une seconde solution consiste à laisser « passer » la page aux niveaux du htaccess pour mieux la rediriger lors de votre première instruction du langage que vous utilisez (Ruby on Rails, PHP, …). Nous vous indiquerons ici 2 exemples, en Ruby on Rails et en PHP.

Ruby on Rails

Le framework Ruby on Rails permet, entre bien d’autres choses, de réaliser ces redirections 301. Il suffit pour cela d’indiquer l’ancienne url dans les routes et de l’envoyer vers une action de votre contrôleur qui redirigera la page de façon élégante en 301 (3 manières possibles suivant les cas).

Dans le fichier routes.rb indiquez :

map.connect '/mon-ancienne-url',
:controller => 'mon-controller-s', :action => 'redirector', :id => '/ma-nouvelle-url'

Attention à l’ordre des routes pour que celle-ci soit bien prise en compte.

Puis dans votre contrôleur indiquez l’action redirector :

ou encore :

ou bien :

PHP

Pour le php, le système est légèrement différent pas de routes donc il faut placer le code qui va suivre avant toutes insertions de code HTML, au risque de ne pas pouvoir effectuer la redirection 301.

Pour cela le mieux est de se placer juste après l’ouverture de la balise php et d’insérer dans votre condition (et oui à vous de regarder l’url pour savoir si vous devez la rediriger ou pas et vers quelle nouvelle adresse) :

ou bien :

La deuxième écriture étant plus complète que la première.

Voilà bon courage.

Envoyer un email avec pièce jointe en PHP

Vous voulez envoyer un pdf, une image ou tout autre document en pièce jointe d’un email dans un script PHP. Pour cela nous allons utiliser la classe PHP mailer : class.phpmailer.php .

Tout d’abord, vous devez inclure la classe phpmailer dans votre script puis l’utiliser comme ci-après :

Ceci fonctionne plutôt bien, elle a été trouvée sur developpez.com.

Conflit jQuery et Prototype

Alors que nous ajoutions une fonctionnalité en Javascript (jQuery) sur un site utilisant déjà Prototype, la fonctionnalité est bien ajoutée mais le script Prototype n’est plus appelé (régression). Voici comment faire pour que les deux cohabitent :

  1. Appeler le script jquery.js avant prototype.js dans la structure du site
  2. Dans les scripts js qui utilisent jquery, remplacer

Par

Partout où il y a $ dans les jquery, remplacer les par jQuery.

Et le tour est joué !

Formatage de chaine en Ruby

Certes nous pouvons aujourd’hui espérer communiquer entre structures via des services Web, ou tout du moins du XML, mieux du YAML, ou en dernier recours le traditionnel CSV. Mais parfois au détour d’un projet nécessitant de communiquer avec une partie tierce, nous découvrons une spécification de 73 pages indiquant le format exigé d’un fichier octet par octet !

Ce fut l’occasion d’écrire, après remaniement, une élégante fonction en Ruby.

Voici un exemple de spécification :

Prénom | début 1 | longueur 15
Nom | début 16 | longueur 20 etc, etc.

Il est en outre précisé que les champs trop courts doivent être complétés avec des espaces et nous choisissons de tronquer les champs trop longs.

Nous allons donc écrire une fonction qui formatera nos données.

Remarquons l’élégance de la boucle Ruby chaine.length.upto.

Ce qui après remaniement donne :

Si vous voyez une erreur ou une possibilité plus courte, laissez votre commentaire.
 

wp-admin/install.php vide ou blanc

Lors de l’installation de WordPress, si le fichier wp-admin/install.php est vide ou blanc, bien vérifier qu’il n’y a pas de problème d’encodage dans wp-config.php, ce qui peut arriver s’il est édité avec Putty.