Supprimer le PHPSESSID d’une url

En bon codeur amateur (et encore c’est un euphémisme…) j’ai plusieurs fois galéré avec des sites utilisant des sessions dans les urls.

Nous allons tacher de nous débarrasser de ça :

Supprimer le PHPSESSID de ses urls | Rank My Day

Voici donc quelques astuces pour supprimer le PHPSESSID: comment se débarrasser de ces urls exotiques qui en plus d’être rédhibitoires pour le référencement organique sont moins sécurisées que des sessions gérées par cookies ?

Utilisez le code suivant dans votre fichier config.php:

<php
ini_set('session.use_trans_sid', 0);
ini_set(‘session.use_only_cookies’, 1);
>

Cela indiquera au serveur d’écraser les paramètres par défaut. Malheureusement, la plupart des hébergements mutualités n’autorisent pas ces modifications via ini_set.

Une autre méthode pour supprimer le PHPSESSID consiste à passer via le fichier htaccess:

php_flag session.use_trans_sid off
php_flag session.use_only_cookies on

Ces lignes placées dans le htaccess à la racine du site auront le même effet que la premières manipulation, à savoir empêcher la génération de PHPSESSID dans toute nouvelle url.

Si par contre vous avez déja certaines pages indexées dans les SERPs avec des sessions dans les urls, utilisez la méthode ci dessous:

Lignes à ajouter dans le htaccess :

<IfModule mod_rewrite.c>
RewriteEngine On
#remove PHPSESSID

RewriteCond %{QUERY_STRING} PHPSESSID=.*$
RewriteRule .* %{REQUEST_URI}? [R=301,L]
</IfModule>

Cette solution nécessite que votre hébergeur ait compilé son PHP avec le mod rewrite. Si cela n’est pas le cas, utilisez la solution ci dessous :

Ajoutez ces lignes au fichier config.php

<?php
if (isset($_GET['PHPSESSID']))
{
$requesturi = preg_replace('/?PHPSESSID=[^&amp;]+/',"",$_SERVER['REQUEST_URI']);
$requesturi = preg_replace('/&amp;PHPSESSID=[^&amp;]+/',"",$requesturi);
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://".$_SERVER['HTTP_HOST'].$requesturi);
exit;
}
>

Voila, le PHPSESSID c’est le mal !! vous l’aurez compris.

Partager:
  • del.icio.us
  • BlogMemes Fr
  • Fuzz
  • Wikio
  • Technorati
  • TwitThis

>> Supprimer le PHPSESSID d’une url
Cet article vous a plus ? Abonnez-vous au flux RSS

Articles connexes

Commentaires

2 Commentaires to “Supprimer le PHPSESSID d’une url”

  1. Neil on juin 2nd, 2008 16:08

    Merci pour cet article

    Je pensais avoir trouvé la solution à mon probleme mais le redirect par httaccess ne marche pas sur un url comme ça
    http://www.monsite.fr/fichier.php?variable=40&PHPSESSID=05edf837abc0af7c6db598daf7a7e29c

    Le redirect doit envoyer vers http://www.monsite.fr/fichier.php?variable=40

    mais il envoi vers

    http://www.monsite.fr/fichier.php

    - Neil

  2. Raphael on juin 2nd, 2008 16:33

    Oui, la il te manque manifestement quelque chose :) Commence par supprimer ton phpsessid et fais ensuite ta redirection dans ton htaccess.
    Dis nous si cela fonctionne.
    a+

Laissez un commentaire




Rankmyday - lecteurs

Lecteurs Mybloglog

Lecteurs Friend connect