web-dev-qa-db-fra.com

L'utilisation de PHP dans les fichiers .html ne fonctionne pas comme prévu

Apache2, Linux, php5

J'ai ajouté cette ligne à mon fichier .htaccess

AddType application/x-httpd-php5 .htm .html

en cours d'exécution apace2ctl -m, affiche ce module chargé

Un php5_module (partagé)

J'ai une simple page HTML avec une ligne de code PHP à l'intérieur d'une balise <h2>

 <?php echo "It works!"; ?>

Lorsque rendu dans le navigateur, le serveur semble avoir commenté le PHP comme si

<!--?php echo "It works!"; ?-->

Si je renomme le fichier avec une extension PHP cela fonctionne très bien.

Pourquoi Apache ne traite-t-il pas le code PHP dans mes fichiers HTML comme indiqué? Qu'est-ce que je fais mal?

3
ScottD

<!--?php echo "It works!"; ?-->

C’est ce que vous voyez lorsque vous analysez l’élément à l’aide des navigateurs Inspecteur d’objets ie. le source interprétée. Ce n'est pas la source HTML telle qu'elle a été envoyée par le serveur ("view source").

Fondamentalement, vos pages HTML ne sont pas traitées par PHP. Vous devrez probablement vérifier auprès de votre hôte quelle directive vous souhaitez utiliser. Vous devrez peut-être utiliser AddHandler à la place, ou supprimer le 5, ou quelque chose d'autre. (C'est-à-dire si votre hôte autorise ces directives dans .htaccess?)

3
MrWhite

Mon installation Apache a un fichier php5.conf que j'ai ajouté à cela.

<FilesMatch ".+\.html$">
    SetHandler application/x-httpd-php
</FilesMatch>

Dans mon fichier .htaccess, j'ai aussi changé

AddType application/x-httpd-php5 .html

à

AddType application/x-httpd-php .html

Scott

2
ScottD

Il est généralement préférable d’utiliser un fichier php au lieu d’un fichier html pour ce que vous essayez de faire. Cependant, si vous avez absolument besoin que ce soit un document HTML, vous pouvez utiliser un fichier .htaccess placé à la racine de votre site et contenant ceci:

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

Au lieu de

AddType application/x-httpd-php5 .htm .html
1
Michel Descoteaux