blob: 1101266a993347e2efea35b8714758d2a9215a26 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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à !
|