Depuis ce matin, je tente de faire quelque chose avec l'URL rewriting : je voudrais rediriger toutes les requêtes vers des fichiers non PHP vers le fichier afficher.php. J'ai donc modifié mon fichier .htaccess en ajoutant la ligne suivante :
J'ai fait des essais, et ça marche un peu. Mais ça cause aussi beaucoup de problèmes.
Dans le fichier afficher.php, je récupère en paramètre le nom du fichier d'origine, je fais un traitement basé là-dessus, puis je renvoie le contenu au visiteur (oui tout de même c'est mieux :wink: ).
Mais avec ce système, ma gestion des erreurs 404 et autres ne fonctionne plus, et lorsque le visiteur accède à une adresse du genre : http://www.example.com/dossier ça crée des problèmes pour récupérer en PHP le nom réel du fichier qui aurait dû être servi par Apache. Alors je teste si c'est un dossier, je rajoute un /, puis je teste l'existence d'un fichier : index.html, index.htm puis index.php
Si aucun des trois précédents n'existe, je renvoie une erreur 404, mais pas ma page d'erreur personnalisée :
Je n'ai pas compris comment je pouvais faire mieux.
Conclusion, c'est un peu le bazar cette première tentative. :cry:
Si vous avez une suggestion pour améliorer tout ça, n'hésitez pas.
Merci.
Jocelyn
Code:
RewriteRule !(^.*\.php) afficher.php?fichier=%{REQUEST_FILENAME} [L]
J'ai fait des essais, et ça marche un peu. Mais ça cause aussi beaucoup de problèmes.
Dans le fichier afficher.php, je récupère en paramètre le nom du fichier d'origine, je fais un traitement basé là-dessus, puis je renvoie le contenu au visiteur (oui tout de même c'est mieux :wink: ).
Mais avec ce système, ma gestion des erreurs 404 et autres ne fonctionne plus, et lorsque le visiteur accède à une adresse du genre : http://www.example.com/dossier ça crée des problèmes pour récupérer en PHP le nom réel du fichier qui aurait dû être servi par Apache. Alors je teste si c'est un dossier, je rajoute un /, puis je teste l'existence d'un fichier : index.html, index.htm puis index.php
Si aucun des trois précédents n'existe, je renvoie une erreur 404, mais pas ma page d'erreur personnalisée :
Code:
header('HTTP/1.0 404 Not Found');
Conclusion, c'est un peu le bazar cette première tentative. :cry:
Si vous avez une suggestion pour améliorer tout ça, n'hésitez pas.
Merci.
Jocelyn