J’ai été mis dans la position suivante : administrateur du site web du laboratoire, on m’a demandé de mettre celui-ci « en berne ». La chose est à la fois simple et compliquée ; en effet, plusieurs sous-systèmes peuvent répondre à une même adresse, et il s’agissait ici de le faire autant pour les pages personnelles des chercheurs que pour le site général. Il fallait également garder une accessibilité des pages sans trop de problèmes, car il s’agit de manifester son mécontentement, pas d’arrêter totalement la circulation de l’information.
Le choix retenu, vous avez dû le voir si vous consultez cette page (début) février 2009. Une page est présentée, avec quelques explications ; un lien proéminent permet de continuer vers l’URL initiale.
Je présente ici les grandes lignes. Nous utilisons une configuration assez classique d’Apache, avec mod_rewrite. J’ai rajouté ces lignes de code au virtual host (proche du début) auquel répond notre site web :
RewriteEngine on
RewriteCond %{HTTP_COOKIE} !LIPNstrike=LIPNstrike
RewriteCond %{REQUEST_URI} !\.ics$
RewriteRule (.*) /greve.php?origin=$1
On notera que j’ai fait une exception pour certains types de fichier, typiquement accédés par des programmes qui ne sont pas des navigateurs web (ici, les fichiers calendriers). Chacun est libre d’étendre ces exceptions.
J’ai par ailleurs créé à la racine du site web un fichier greve.php qui est tout simple :
<?php
setcookie("LIPNstrike", "LIPNstrike", time()+3600, "/");
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Pragma" content="no-cache">
<meta name="MSSmartTagsPreventParsing" content="TRUE" />
<meta name="ROBOTS" content="NOINDEX, NOFOLLOW" />
<title>Le LIPN est en grève / LIPN is on strike </title>
</head>
<style>
body {background: black;color: red;font-size: 200%;}
H1,p {font-family: "Domestic Manners", "Junkyard", "Comic Sans MS", cursive, fantasy;}
</style>
<body><h1>Le LIPN est en grève !</h1>
<p><a href="http://www-lipn.univ-paris13.fr/greve.html">Quelques mots d'explication...</a></p>
<p>Deux liens : <a href="http://www.sauvonsluniversite.com/">Sauvons l'Université</a> et <a href="http://www.sauvonslarecherche.fr/">Sauvons la Recherche</a>.</p>
<p><a href="<?php
$url='http://www-lipn.univ-paris13.fr'.($_SERVER["REQUEST_URI"]);
echo $url;
?>">Je veux quand même accéder à mon URL...</a></p>
<h1>The LIPN is on strike!</h1>
<p><a href="http://www-lipn.univ-paris13.fr/greve.html">A few words... (in French)</a></p>
<p><a href="<?php echo $url ?>">I still want to access my URL...</a></p></body></html>
On notera parmi les divers paramètres : le nom d’hôte canonique du site web (je pourrais le récupérer des diverses variables, mais ça allait plus vite comme ça), la durée du cookie (petite clé enregistrée dans le navigateur qui permet de ne pas revoir systématiquement la page d’annonce qui est ici de 3600 secondes) (au tout début du fichier).
Par ailleurs, il faut faire relire sa configuration au serveur web après la première modification.


