diff options
author | Chimrod <contact+git@chimrod.com> | 2013-04-16 21:27:30 +0200 |
---|---|---|
committer | Chimrod <contact+git@chimrod.com> | 2013-04-16 21:27:30 +0200 |
commit | 66a5a0cdccd464930a232c87f91e1b0805f255a5 (patch) | |
tree | 1563108cc22cfdc250108eb25b3beaf51d398dff /content/Informatique/apache.rst |
initial commit
Diffstat (limited to 'content/Informatique/apache.rst')
-rwxr-xr-x | content/Informatique/apache.rst | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/content/Informatique/apache.rst b/content/Informatique/apache.rst new file mode 100755 index 0000000..1101266 --- /dev/null +++ b/content/Informatique/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à ! |