Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Serveurs (Apache, IIS,...) > Apache
Apache Forum d'entraide Apache. Avant de poster : Cours Apache, FAQ Apache
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/12/2011, 09h50   #1
Invité de passage
 
Homme Sébastien BORDAT
Développeur Web
Inscription : décembre 2011
Messages : 2
Détails du profil
Informations personnelles :
Nom : Homme Sébastien BORDAT
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur Web
Secteur : Santé

Informations forums :
Inscription : décembre 2011
Messages : 2
Points : 0
Points : 0
Par défaut Conversion fichier javascript en php

Bonjour,

nous avons mis en place sur notre serveur OVH (Gentoo, Apache 2.2.19, PHP 5.2.13) un fichier .htaccess afin de convertir nos fichiers javascript en PHP. Le fichier contient la ligne suivante :

Code :
AddType application/x-httpd-php .js
Puis dans nos fichiers javascript, nous avons ajouté le header suivant afin qu'ils puissent être interprétés par le navigateur :

Code :
1
2
header('Content-type: application/x-javascript; charset=UTF-8');
header('Cache-Control: max-age=3600, must-revalidate');
Malheureusement, lorsqu'on regarde la section "Network" du "Developer Tools" de Chrome, les fichiers javascripts apparaissent comme des fichiers PHP (application/x-httpd-php) et le navigateur nous indique des erreurs au niveau des "<?php" (nous avons l'impression que le serveur ne traite pas le PHP dans ces fichiers).

Pourquoi ne sont-ils pas reconvertis en javascript ??
Y aurai t'il un module à ajouter à apache ou PHP ??

Ps : nous avons wamp installé sur nos machines en local et tout fonctionne correctement. Les fichiers javascripts sont bien du type application/x-javascript et donc bien interprétés par le navigateur.

Merci de votre aide
sebastien.bordat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 23h13   #2
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 297
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 297
Points : 8 580
Points : 8 580
Un peu compliqué comme façon de faire, je trouve. Le plus simple c'est de garder dans le code HTML des références à des fichiers .js (<script href="toto.js">) et d'utiliser de la réécriture d'URL vers le même fichier mais avec .php à la place du .js. Du coup, je retirerais la configuration que vous avez faite pour mettre ceci dans le .htaccess :
Code :
1
2
3
4
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*)\.js$ $1.php [L]
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 10h26   #3
Invité de passage
 
Homme Sébastien BORDAT
Développeur Web
Inscription : décembre 2011
Messages : 2
Détails du profil
Informations personnelles :
Nom : Homme Sébastien BORDAT
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur Web
Secteur : Santé

Informations forums :
Inscription : décembre 2011
Messages : 2
Points : 0
Points : 0
Bonjour,

merci pour votre réponse. Malheureusement, la solution que vous nous avez conseillé ne fonctionne pas.
Je vais un peu plus détaillé le problème que nous rencontrons en vous donnant des exemples :

Nous avons un fichier index.php qui contient le code suivant :

Code :
1
2
3
4
5
6
7
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
   <head>
      <script type="text/javascript" src="/path/to/file.js"></script>
   </head>
   <body></body>
</html>
Et notre fichier /path/to/file.js qui contient ceci :

Code :
 var test = <?php echo "test"; ?>;
Afin que le code PHP du fichier javascript soit interprété, nous avons ajouté, au même endroit que notre fichier javascript, un fichier .htaccess qui contient la ligne :

Code :
 AddType application/x-httpd-php .js
Avec ce fichier .htaccess, /path/to/file.js est considéré comme un fichier PHP (si je me trompe pas !!) et donc il devrait être interprété par le serveur.
Pour finir, nous avons rajouté à /path/to/file.js le header suivant :

Code :
 header('Content-type: application/x-javascript; charset=UTF-8');
pour que la navigateur puisse l'interprété comme un fichier javascript.

En local avec wamp, tout fonctionne correctement. Le code PHP des fichiers javascripts est bien interprété.
Le problème, c'est lorsqu'on met ces fichiers sur notre serveur OVH, le code PHP n'est pas du tout interprété et les fichiers javascripts sont de type application/x-httpd-php au lieu d'être des fichiers application/x-javascript. Et le navigateur m'affiche donc des erreurs de syntaxes au niveau du code PHP.

Est ce qu'il se peut qu'il manque une configuration sur notre serveur apache ou PHP ??

PS : en local, sous wamp, PHP est installé comme un module Apache. Mais sur OVH, nous n'avons pas cette configuration. Question : le module PHP est-il actif dans votre httpd.conf ??

J'espère avoir été assez précis sur le probleme que nous rencontrons.
Merci
sebastien.bordat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 22h26   #4
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 297
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 297
Points : 8 580
Points : 8 580
A priori c'est le problème : avec PHP en CGI le AddType ne fonctionne pas.

Dans ma méthode, l'idée est de renommer les fichiers .js en .php (chose que je n'ai pas mentionnée mais que je croyais évidente...) et de réécrire les demandes vers les .js vers un fichier .php équivalent. Donc il faut renommer les fichiers .js en .php.
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h26.


 
 
 
 
Partenaires

Hébergement Web