Je dois exécuter tous mes fichiers .html sous forme de fichiers .php et je n'ai pas le temps de modifier tous les liens avant notre présentation 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: utiliser cette directive]
AddType application/x-httpd-php .html .htm
Ou, du 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 mon serveur Godaddy le code suivant a fonctionné
Options +ExecCGI
AddType application/x-httpd-php .php .html
AddHandler x-httpd-php5 .php .html
Vous pouvez également utiliser l'indicateur H ou T de mod_rewrite pour forcer l'analyse de tous les fichiers .html par le gestionnaire php:
utilisation du drapeau H (gestionnaire):
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 ajouter d'autres extensions au modèle de règle séparé par un tuyau que vous voulez analyser par le gestionnaire php
ex:
RewriteRule \.(html|htm|txt|foo)$ - [T=application/x-httpd-php5]
l'exemple ci-dessus changera le type mime des fichiers se terminant par . html, . htm, . txt, . foo à 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]
Vous devez ajouter la ligne suivante dans votre fichier de configuration Apache:
AddType application/x-httpd-php .htm .html
Vous avez également besoin de deux autres choses:
Autoriser la dérogation
Dans your_site.conf
fichier (par exemple sous /etc/Apache2/mods-available
dans mon cas), ajoutez les lignes suivantes:
<Directory "<path_to_your_html_dir(in my case: /var/www/html)>">
AllowOverride All
</Directory>
Activer la réécriture du mod
Exécutez cette commande sur votre machine:
Sudo a2enmod rewrite
Après l’une de ces étapes, vous devez redémarrer Apache:
Sudo service Apache2 restart
Pour tous ceux qui ont 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
Normalement, vous devriez ajouter:
Options +ExecCGI
AddType application/x-httpd-php .php .html
AddHandler x-httpd-php5 .php .html
Cependant pour l'hébergement mutualisé GoDaddy (php-cgi), vous devez également ajouter ces lignes:
AddHandler fcgid-script .html
FCGIWrapper /usr/local/cpanel/cgi-sys/php5 .html
Source: Parse HTML As PHP Utilisation du fichier HTACCESS sur Godaddy .
Je pense que c'est la meilleure façon d'exécuter un script php sur les pages html et htm:
AddType application/x-httpd-php5 .html .htm
Ceci est en édition pour toutes les autres bonnes réponses:
Si vous ne pouvez pas trouver le bon gestionnaire, créez simplement un fichier .php avec le contenu suivant:
<?php echo $_SERVER['REDIRECT_HANDLER']; ?>
et exécutez/ouvrez ce fichier dans le navigateur.
Utiliser cette sortie dans le fichier .htaccess
Créez un fichier .htaccess à la racine de votre site Web (généralement un dossier nommé public_html ou htdocs sur des serveurs linux) et ajoutez cette ligne:
AddType [[THE OUTPUT FROM ABOVE FILE]] .html .htm
Exemple
AddType application/x-httpd-php70 .html .htm
Si vous voyez une page vierge ou Notice: Undefined index: REDIRECT_HANDLER
Essayez par défaut dans .htaccess
AddHandler application/x-httpd-php .html
ici mettre ceci dans votre .htaccess
AddType application/x-httpd-php .php .htm .html
plus d'infos sur ce page
L'exécution de fichiers .html en tant que php a cessé de fonctionner tout d'un coup dans mon fichier .htaccess.
Le soutien de GoDaddy m'a fait changer pour:
AddHandler application/x-httpd-lsphp .html
Avec l’approche @ Marc-François, Firefox m’a demandé de 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
J'utilise PHP7.1 sous 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
AddHandler application/x-httpd-php .php .html .htm
// or
AddType application/x-httpd-php .php .htm .html