summaryrefslogtreecommitdiff
path: root/content/Informatique/2012-08-12-apache.rst
diff options
context:
space:
mode:
Diffstat (limited to 'content/Informatique/2012-08-12-apache.rst')
-rw-r--r--content/Informatique/2012-08-12-apache.rst46
1 files changed, 46 insertions, 0 deletions
diff --git a/content/Informatique/2012-08-12-apache.rst b/content/Informatique/2012-08-12-apache.rst
new file mode 100644
index 0000000..1101266
--- /dev/null
+++ b/content/Informatique/2012-08-12-apache.rst
@@ -0,0 +1,46 @@
+.. -*- mode: rst -*-
+.. -*- coding: utf-8 -*-
+
+Un code retour personalisé avec apache
+######################################
+
+:date: 2012-08-12
+:tags: Libre, Hébergement
+
+Petite astuce pour un problème que j'ai rencontré il y a quelques temps avec
+apache. Je souhaitais modifier le code retour d'une requête (en l'occurrence
+remplacer un code 403 par 404).
+
+J'ai été surpris de ne trouver aucun module pour le faire, sécurité,
+redirection ou autre contrôle sur les requêtes.
+
+La solution trouvée fut d'utiliser un script cgi, qui se charge de faire la
+réponse à la place d'apache, et est appelé en page d'erreur. Cela donne :
+
+.. code-block:: bash
+
+ ScriptAlias /cgi-bin/ /home/www/cgi/
+ ErrorDocument 403 /cgi-bin/404.cgi
+
+Le script en question est fait en bash pour simplifier les choses :
+
+.. code-block:: bash
+
+ #!/bin/sh
+ echo Status: 404 Not Found
+ echo Content-type: text/html
+ echo
+ cat << EOM
+ <!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">
+ <html><head>
+ <title>404 Not Found</title>
+ </head><body>
+ <h1>Not Found</h1>
+ <p>The requested URL ${REQUEST_URI} was not found on this server.</p>
+ <hr>
+ <address>Apache/2.2.22 (Debian) Server at chimrod.com Port 80</address>
+ </body></html>
+ EOM
+ exit 0
+
+et voilà !