web-dev-qa-db-fra.com

Vous utilisez .htaccess pour que toutes les pages .html soient exécutées en tant que fichiers .php?

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?

47
Michael Novello

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 
58
Marc-François

Dans mon serveur Godaddy le code suivant a fonctionné

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

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]
6
starkeen

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:

  1. 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>
    
  2. 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
    
5
Dorad

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
5
ilight

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 .

4
CatsDontWearPants

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
4
Mouhssine

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.

Output from the php code, copy this output

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

Note importante:

Si vous voyez une page vierge ou Notice: Undefined index: REDIRECT_HANDLER

Essayez par défaut dans .htaccess

AddHandler application/x-httpd-php .html
3
th3pirat3

ici mettre ceci dans votre .htaccess

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

plus d'infos sur ce page

2
andrewk

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
1
Mike Slaught

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

1
Philipp Michael

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
0
Wobbo
AddHandler application/x-httpd-php .php .html .htm
// or
AddType application/x-httpd-php .php .htm .html
0
John x3