Utiliser .htaccess pour rendre toutes les pages .html exécutables sous forme de fichiers .php?

J’ai besoin d’exécuter tous mes fichiers .html en tant que fichiers .php et je n’ai pas le temps de modifier tous les liens avant notre présentation de demain. Est-il possible de “pirater” ceci avec mon serveur Apache?

Créez un fichier .htaccess à la racine de votre site Web et ajoutez cette ligne:

[Apache2 @ Ubuntu / Debian: utilisez cette directive]

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

Ou, d’après le commentaire ci-dessous:

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

Si vous utilisez PHP en tant que CGI (probablement pas le cas), vous devriez écrire à la place:

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

Dans My Godaddy Server, le code suivant fonctionnait

 Options +ExecCGI AddType application/x-httpd-php .php .html AddHandler x-httpd-php5 .php .html 

Pour quiconque a encore des problèmes,

Essayez ceci (mon hébergement venait de Godaddy et c’est la seule chose qui a fonctionné pour moi parmi toutes les réponses disponibles).

 AddHandler x-httpd-php5-cgi .html 

Vous devez append la ligne suivante dans votre fichier de configuration Apache:

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

Vous avez également besoin de deux autres choses:

  1. Autoriser le dépassement

    Dans votre your_site.conf (par exemple sous /etc/apache2/mods-available dans mon cas), ajoutez les lignes suivantes:

     "> AllowOverride All  
  2. Activer le mod de réécriture

    Exécutez cette commande sur votre machine:

     sudo a2enmod rewrite 

    Après chacune de ces étapes, vous devez redémarrer apache:

     sudo service apache2 restart 

Je pense que c’est la meilleure façon d’exécuter un script PHP sur les pages HTML et HTML:

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

Vous pouvez également utiliser l’indicateur H ou T de mod_rewrite pour forcer tous les fichiers .html à être analysés par le gestionnaire php:

en utilisant le drapeau H (Handler):

  RewriteEngine on RewriteRule \.(html|htm)$ - [H=application/x-httpd-php5] 

en utilisant l’indicateur T (Type):

  RewriteEngine on RewriteRule \.(html|htm)$ - [T=application/x-httpd-php5] 

Ou vous pouvez append plus d’extensions au modèle de règles séparé par un tuyau | que vous voulez être analysé par le gestionnaire php

ex:

 RewriteRule \.(html|htm|txt|foo)$ - [T=application/x-httpd-php5] 

l’exemple ci-dessus changera le type de fichier MIME qui se termine par .html , .htm , .txt , .foo en php.

Remarque: sur certains serveurs, vous devrez changer php5 en php pour que cet exemple fonctionne dans la chaîne du gestionnaire:

Changes le

 [T=application/x-httpd-php5] 

à

 [T=application/x-httpd-php] 

Normalement, vous devriez append:

 Options +ExecCGI AddType application/x-httpd-php .php .html AddHandler x-httpd-php5 .php .html 

Cependant, pour l’hébergement partagé GoDaddy (php-cgi), vous devez également append ces lignes:

 AddHandler fcgid-script .html FCGIWrapper /usr/local/cpanel/cgi-sys/php5 .html 

Source: Parse HTML en PHP avec le fichier HTACCESS sur Godaddy .

mettez ceci dans votre .htaccess

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

plus d’infos sur cette page

En utilisant l’approche de @ Marc-François, Firefox m’a invité à télécharger le fichier HTML

Enfin, ce qui suit fonctionne pour moi (en utilisant les deux):

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

Ceci est en édition à toutes les autres bonnes réponses:

Si vous ne trouvez pas le bon gestionnaire, créez simplement un fichier .php avec le contenu suivant:

  

et lancez / ouvrez ce fichier dans le navigateur.

Sortie du code PHP, copiez cette sortie

Utilisez cette sortie dans un fichier .htaccess

Créez un fichier .htaccess à la racine de votre site Web (généralement un dossier nommé public_html ou htdocs sur les serveurs Linux) et ajoutez cette ligne:

 AddType [[THE OUTPUT FROM ABOVE FILE]] .html .htm 

Exemple

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

Note importante:

Si vous voyez une page blanche ou un Notice: Undefined index: REDIRECT_HANDLER

Essayer par défaut dans .htaccess

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

J’utilise PHP7.1 en cours d’exécution dans mon Raspberry Pi 3.

Dans le fichier /etc/apache2/mods-enabled/php7.1.conf j’ai ajouté à la fin:

 AddType application/x-httpd-php .html .htm .png .jpg .gif 

Exécuter des fichiers .html comme php a cessé de fonctionner soudainement dans mon fichier .htaccess.

Le soutien de Godaddy m’a fait changer ça pour:

 AddHandler application/x-httpd-lsphp .html