[SPIP] Redirection http
Exemple de redirection 301 par entête http via le pipeline affichage_entetes_final

Utilisation du pipeline affichage_entetes_final sur SPIP pour faire des redirections HTTP 301,404. Dans l’exemple suivant, lorsqu’un utilisateur tente d’afficher la page d’inscription, on le redirige sur sa page personnelle.

Au sein d’un plugin

Dans le cadre de la création d’un plugin, après avoir déclaré le pipeline dans paquet.xml

  1. function prefixPlugin_affichage_entetes_final($entetes){
  2. # Rediriger un auteur authentifié vers sa page perso lorsque il demande  à afficher la page inscription
  3.    if ( isset($GLOBALS['auteur_session']['id_auteur'])
  4.         AND (_request('page') === "inscription") ) {
  5.             $entetes["status"]= "301 Moved Permanently";
  6.             $entetes["Location"]=  generer_url_entite($GLOBALS['auteur_session']['id_auteur'],"auteur");
  7.     }
  8. return $entetes;
  9. }

Télécharger

Dans le dossier de personnalisation

Dans le dossier squelette habituel, il faut ajouter au fichier mes_fonctions.php une fonction que l’on peut nommer par exemple "redirections_persos".

  1. # squelettes/mes_fonctions.php
  2. function redirections_persos($entetes){
  3.     # Rediriger un auteur authentifié vers sa page perso lorsque il demande  à afficher la page inscription
  4.    if ( isset($GLOBALS['auteur_session']['id_auteur'])
  5.         AND (_request('page') === "inscription") ) {
  6.             $entetes["status"]= "301 Moved Permanently";
  7.             $entetes["Location"]=  generer_url_entite($GLOBALS['auteur_session']['id_auteur'],"auteur");
  8.     }
  9. return $entetes;
  10. }

Télécharger

Puis dans config/mes_options.php on lie notre fonction au pipeline affichage_entetes_final

  1. # config/mes_options.php
  2. $GLOBALS['spip_pipeline']['affichage_entetes_final'] .= "|redirections_persos";

Télécharger