Noter ce que le serveur a fallu régler pour la 404

La page était en place, mais Apache renvoyait toujours l'accueil avec un
code 200 : c'est le .htaccess et le routeur PHP qui décidaient, et ni
l'un ni l'autre ne vit dans ce dépôt. Le README disait quoi poser ; il
dit maintenant ce qui est posé, et ce qui reviendra si ISPConfig
réinitialise ces fichiers un jour.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JYfYUZRcJmmEWJwAxZb4o2
This commit is contained in:
Cédrix 2026-09-23 13:52:06 +02:00
parent ddf3f79e7a
commit c94fcf41fa

View file

@ -96,21 +96,24 @@ l'accueil, le wiki, les mises à jour et les listes de diffusion. Elle porte
`noindex, follow` : une page d'erreur n'a rien à faire dans un moteur de recherche,
mais ses liens restent bons à suivre.
**Elle ne sert à rien sans la directive Apache qui va avec.** Le `.htaccess` du
DocumentRoot — qui vit sur le serveur, pas dans ce dépôt public — doit porter :
**Elle dépend de deux réglages qui vivent sur le serveur**, pas dans ce dépôt public —
en place depuis le 23 septembre 2026 :
```apache
ErrorDocument 404 /404.html
```
- le `.htaccess` du DocumentRoot porte `ErrorDocument 404 /404.html`, et n'envoie plus
au routeur PHP que les adresses commençant par `public-calendars` ;
- `index.php`, ce routeur, finit par un `http_response_code(404)` suivi de la page,
au lieu du `readfile('index.html')` qu'il faisait avant.
et **ne pas** renvoyer les adresses inconnues vers l'accueil. Une règle du type
`RewriteRule . /index.html [L]` produit un « soft 404 » : le visiteur voit l'accueil,
le moteur de recherche enregistre une page valide, et personne ne sait que l'adresse
était fausse.
Jusque-là, **toute adresse inconnue recevait l'accueil avec un code 200** : le visiteur
croyait avoir atterri quelque part, et les moteurs de recherche enregistraient autant
de pages valides qu'il existe d'adresses fausses. Si ISPConfig réinitialise un jour ces
fichiers, c'est ce comportement qui revient — et c'est ce qu'il faut reposer.
```bash
# ce qu'on doit lire une fois la directive en place
# ce qu'on doit lire
curl -o /dev/null -w '%{http_code}\n' https://alpinux.org/adresse-qui-nexiste-pas # 404
curl -o /dev/null -w '%{http_code}\n' https://alpinux.org/ # 200
curl -s https://alpinux.org/public-calendars/n5BWPYsxw7FCYozM | grep -c BEGIN:VEVENT # > 0
```
---