2009-01-27 7 views
4

je travaille sur un site Web qui a un certain nombre de feuilles de style qui doivent tous être traités comme des scripts PHP côté serveur. Mon .htaccess fichier ressemble à ceci:Alternatives à la fonction d'en-tête de PHP

<FilesMatch "\.(css)$"> 
    ForceType application/x-httpd-php 
</FilesMatch> 

Cela provoque un petit problème que le type MIME du champ de http-réponse Content-Type est ensuite mis à text/html au lieu de text/css.

Il est évident que je peux résoudre ce problème en ajoutant header('Content-Type: text/css') à tous mes fichiers, mais est-il une meilleure façon?

Puis-je faire à partir du fichier .htaccess? Aucune des directives offertes par mod_mime ou mod_negotiation semble être ce que je cherche.

Répondre

8

essayer:

php_value default_mimetype "text/css" 
1

Vous devriez être en mesure d'ajouter juste un .php extension à tous vos fichiers CSS; cela va obliger le serveur à passer tout le CSS "normal" juste comme ça, alors que tout votre CSS dynamique généré par PHP devrait être analysé. Après cela, il est juste une question de modifier légèrement la façon dont vous liez vos feuilles de style:

<link rel="stylesheet" type="text/css" href="styles.css.php" /> 

bien que ce soit toujours fait l'affaire pour moi, il y a une petite chance que vous devrez peut-être déclarer explicitement le type MIME de votre Fichiers CSS en utilisant la fonction en-tête de PHP() fonction, comme ceci:

header('Content-type: text/css');