Reading:Générer des pages html dynamiques (changer l’extension php)

Générer des pages html dynamiques (changer l’extension php)

Le principe :

Vous avez des pages html tout ce qu’il y a de plus statiques. Vous voulez y intégrer du php pour je ne sais quelle raison. Il faut donc se débrouiller pour demander à votre serveur d’interpréter les pages .htm ou .html comme du php. Pour cela, si vous êtes administrateur, ce n’est pas trop difficile, ça passe par la configuration d’apache.

Si vous n’êtes pas l’administrateur de votre système vous devrez ruser, et utiliser à bon escient votre .htaccess.

Application :

Vous devez vous occuper d’un gros site, sur lequel on a tout codé au début en html. Les pages sont déjà très bien indexées, mais vous voulez en savoir plus sur vos visiteurs. Comme vous ne maitriser pas le serveur, et que l’on vous a interdit le mod_rewrite, vous ne pouvez pas faire d’url rewriting, et donc pas de redirections 301 vers des pages php. La solutions? Transformer les pages html en pages dynamiques.

Une fois que c’est fais vous pourrez ajouter votre script php sur les pages, et tout cela juste avec le .htaccess et un peu de travail.

La technique :

Il existe, pour votre serveur, deux moyens d’appeler php : en tant que module ou en tant que script CGI. Pour le vérifier, créer une page info.php qui contient uniquement le code :

phpinfo();

?>

Cela vous permettra de voir comment tourne le php chez vous à la ligne : SERVER API. Si vous avez comme résultat “Server API Apache 2.0 Handler” alors le php tourne comme un module et ça sera simple. Sinon, vous avez le résultat “Server API CGI” et là, ça sera un peu plus complexe.

Module

Créer un .htaccess à la racine de votre répertoire web que vous remplirez de la façon suivante :

_AddType application/x-httpd-php .html .htm .php

AddHandler x-httpd-php .html_

Si cela ne marche pas, regardez les liens ci-dessous (les ressources).

CGI

Il faut tout d’abord savoir où est installer le module php. Créez un fichier test.php que vous remplirez de la sorte :

<?php

_echo “

Whereis php?
”;

$last_line = system(‘which php’, $retval);

echo $lastline;

?>

Le résultat obtenu dépendra du serveur. Pour ma part, j’ai :

php: /usr/local/bin/php /usr/local/man/man1/php.1.gz php: /usr/local/bin/php /usr/local/man/man1/php.1.gz

Ainsi, je repère que le php de base est installé à /usr/local/bin/php. Je mets cette information de côté.

Maintenant je crée un fichier .htaccess que je rempli de la façon suivante :

_Options +ExecCGI +Includes

AddHandler server-parsed htm

AddHandler cgi-script .htm_

Vous pouvez aussi remplacer l’extension htm par ce que vous voulez. Votre site sera un peu “customisé”.

A partir de maintenant, le serveur ne vois plus vos pages comme des documents, mais comme des programmes, il va devoir les exécuter. Il faut donc vous assurez que celles-ci soit exécutables (et pas seulement “lisibles”). Ouvrez un shell, et tapez :

chmod -R +x *.htm

Les fichiers .htm sont maintenant autorisés à être exécutés. Il ne reste plus qu’une étape.

Ajouter, en début de chacun de vos fichiers .htm la ligne suivante :

#!/usr/local/bin/php (rappelez-vous, je l’ai eu ci-dessus avec le fichier test.php)

Le retour à la ligne entre le code et votre page web est INDISPENSABLE. Vos obtiendrez une grosse erreur 500 sinon.

Voilà, normalement c’est bon, vos pages .htm sont lisibles par le CGI php. Vous obtenez donc des pages htm dynamiques.

Les ressources :

Si jamais tout cela ne marche pas, survolez les forums du net. Essayez entre autres :

http://www.webmasterworld.com/forum88/603.htm

http://www.modwest.com/help/kb5-1.html