26/09/2011, 12:30
|
| | Fecha de Ingreso: enero-2011
Mensajes: 105
Antigüedad: 13 años, 9 meses Puntos: 10 | |
Respuesta: Quiero mejorar el pagespeed de mi sitio Web Cita:
Iniciado por charlyalegret Hola,
yo también tuve muchos problemas para especificar el caché y habilitar la compresión. Aunque tengo acceso al htaccess de mi servidor, prové todo lo que sale por aquí sin resultado (creo que usa una versión antigua de apache o algo así). Lo que sí me sirvió lo siguiente y por eso lo comparto. Sirve para páginas creadas tanto en php como html.
Se trata de añadir en el htaccess las siguientes lineas:
AddType x-mapp-php5 .php .html .shtml .htm .js .txt .css
AddHandler x-mapp-php5 .php .html .shtml .htm .js .txt .css
<FilesMatch "\.(jpg|jpeg|png|gif|ico)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>
Las dos primeras son para que funcione la compresión, no me preguntéis porqué (me parece que hace algo como definir los archivos como php5, y luego más adelante veréis como indicamos la compresión). Funcionará sobre las extensiones indicadas.
Las tres últimas lineas es para especificar el caché en archivos no comprimibles en gzip.
Por otro lado, se crea un archivo php.ini que se coloca en el directorio raiz del servidor y cada uno de los subdirectorios donde tengamos .js, .css y archivos comprimibles. Este archivo es el que indicará que se lleve a cabo la compresión. Deve contener:
zlib.output_compression = On
zlib.output_compression_level = 9
allow_url_fopen = On
auto_prepend_file = /ruta física/archivo.php
La última línea llama a otro archivo (llamaremos archivo.php, por ej.), que indicará las cabeceras de los archivos comprimidos, ya que estas se pierden. Se deve indicar la ruta física (no la virtual) de este archivo.php y que contendrá:
<?
$pathinfo = pathinfo($_SERVER['PHP_SELF']);
$extension = $pathinfo['extension'];
if($extension == "css")
{
header("Content-type: text/css");
header("Cache-Control: max-age=604800, public");
header("Last-modified: 2011-09-24 20:10");
}
if($extension == "js")
{
header("Content-type: text/javascript");
header("Cache-Control: max-age=604800, public");
header("Last-modified: 2011-09-24 20:10");
}
if($extension == "html")
{
header("Content-type: text/html
De esta forma indicamos también el caché de los archivos .js y .css
Finalmente, para saber la ruta física del archivo.php, podemos crear un segundo archivo, por ej. ruta.php, que colocaremos en el mismo directorio que archivos.php y que contendrá:
<?
$ruta_absoluta = getcwd();
echo 'Ruta física: ' . $ruta_absoluta;
?>
Al ejecutar el archivo en el explorador, nos indica la ruta del archivo.
Bueno, espero que os sea de utilidad para aquellos que no os da resultado el indicar la compresión directamente en el .htpaccess!
---------------------------
[URL="http://www.birdikus.com"]http://www.birdikus.com[/URL] Muchísimas gracias por tu respuesta! Seguro que me ayuda a mi y a mucha gente! Voy a probar tu codigo a ver como reacciona mi web. Y por cierto bienvenido a forosdelweb! |