Se puede, pero es el caso más complicado.
Tenés 2 posibilidaes.
Primero deberías ingresar tu panel de control (Cpanel, Webmin, etc) y verificar si en algún lugar tenes la posibilidad de agregar extensiones a tus "handlers de php". Esto es, actualmente tus extensiones que se procesan como php son las, .php, deberñias agregra lo mismo por lo menos para los .html, .css , .js, una vez hecho esto, en los css deberías cambiar, por ejemplo
estilo.css
por
Código PHP:
Ver original<?php
$archivo = $_SERVER['SCRIPT_FILENAME'];
$expira = 60 * 60 * 24 * 365;
$ExpStr = "Expires:" . gmdate("D,d M Y H:i:s",time() + $expira) . " GMT"; $eTag = "ci-".md5($archivo.$ft); header("Content-Type: text/css;charset=utf-8"); header("Cache-Control: public, max-age=$expira"); header('Last-Modified: '.gmdate('D, d M Y H:i:s', $ft).' GMT'); ?>
/* aqui abajo pones todo tu código css */
body{
background-color: red;
}
Para lo js, sería bastante similar
<?php
$archivo = $_SERVER['SCRIPT_FILENAME'];
$expira = 60 * 60 * 24 * 365;
$ExpStr = "Expires:" . gmdate("D,d M Y H:i:s",time() + $expira) . " GMT";
$ft = filemtime($archivo);
$time = time() - $ft;
$eTag = "ci-".md5($archivo.$ft);
header("Content-Type: text/javacript;charset=utf-8");
header("Cache-Control: public, max-age=$expira");
header($ExpStr);
header('Last-Modified: '.gmdate('D, d M Y H:i:s', $ft).' GMT');
header('ETag: "'.$eTag.'"');
ob_start("ob_gzhandler");
?>
// aqui abajo todo el javascript
var x = 1;
Cambiaría la linea que está en negrita, el content-type debe ser text-javascript
Los html y php(estáticos), más o menos lo mismo
Código HTML:
Ver original<?php
$archivo = $_SERVER['SCRIPT_FILENAME'];
$expira = 60 * 60 * 24 * 1;
$ExpStr = "Expires:" . gmdate("D,d M Y H:i:s",time() + $expira) . " GMT";
$ft = filemtime($archivo);
$time = time() - $ft;
$eTag = "ci-".md5($archivo.$ft);
header("Content-Type: text/html;charset=utf-8");
header("Cache-Control: public, max-age=$expira");
header($ExpStr);
header('Last-Modified: '.gmdate('D, d M Y H:i:s', $ft).' GMT');
header('ETag: "'.$eTag.'"');
ob_start("ob_gzhandler");
?>
<!DOCTYPE html>
<title>Traductiva - La agencia y su equipo de traductores.
</title>
cambia también el content-type, esta vez por text/html
En todos los casos en la linea
$expira = 60 * 60 * 24 * 1;
lo que te interesa es el ultimo número, que indica la cantidad de dias que el archivo va a estar en la cache, en los ejemplos 365 para los js y css y 1 en los html
Esto de la cache es aparte del tema de la compresión, pero te lo paso asi no sea cosa que así como tu hosting no te dejó manejar el mod_deflate, te ponga una restricción para mod_headers
Si tus php son dinámicos (algo que permanentemente actualiza desde una base de datos, por ejemplo, ó un php que procese formularios) solo pones
y obvias lo de la cache
Estos fragmentos van siempre al inicio del documento y recordá que te dije que que necesitas procesar esas extensiones (js, css, html) como php activando los handlers correspondientes en el panel de control.
Si eso no e posible, también podés hacerlo, pero bajo la condición que a todos tus archivos los renombres como
php
es decir que los llamarías usando
<link href="css/estilo.css.php" rel="stylesheet" type="text/css" /> ó
<script type="text/javascript" src="html5ie.js.php"></script>
Es un poco complejo comparado con la primera solución que te propuse, pero no hay otra forma, dadas las limitaciones que te impone tu servidor
te doy un tip extra
si tenés multiples archivos css, podés usar esta variante
Código PHP:
Ver original<?php
$archivo = $_SERVER['SCRIPT_FILENAME'];
$expira = 60 * 60 * 24 * 365;
$ExpStr = "Expires:" . gmdate("D,d M Y H:i:s",time() + $expira) . " GMT"; $eTag = "ci-".md5($archivo.$ft); header("Content-Type: text/css;charset=utf-8"); header("Cache-Control: public, max-age=$expira"); header('Last-Modified: '.gmdate('D, d M Y H:i:s', $ft).' GMT');
include('reset.css');
include('principal.css');
// y el resto, repetando el orden en que lo hubieses puesto de hacerlo individualmente
// advertí que los includes estan antes del cierre de php y no después
?>
Con los js, es similar
Saludos