Se crea un archivo llamado .htaccess si no existe en "/home/user/public_html", para que se aplique a nivel general, o en la ubicación que deseemos y se le añade lo siguiente:
AddHandler application/x-httpd-php5 .css
AddHandler application/x-httpd-php5 .js
AddHandler application/x-httpd-php5 .html
<IfModule mod_suphp.c>
<FilesMatch "\.(css|js|html)$">
suPHP_ConfigPath /home/user/public_html
<Files php.ini>
order allow,deny
deny from all
</Files>
</FilesMatch>
</IfModule>
Para que lo escrito en el archivo "php.ini" se aplique en general a todo lo que se ejecute a través del handler php se debe eliminar las etiquetas "<FilesMatch>".
En el directorio "public_html" (o en la ubicación que nos parezca más conveniente, se puede crear por ejemplo una carpeta para php.ini y pre.php) se crea un archivo llamado "php.ini" con el contenido:
[PHP]
zlib.output_compression = On
zlib.output_compression_level = 6
auto_prepend_file = /home/user/public_html/pre.php
short_open_tag = 0
Y finalmente en la misma ubicación se crea el archivo llamado "pre.php" que contenga:
<?php $path = pathinfo($_SERVER['SCRIPT_NAME']); if ($path['extension'] == 'css') { header('Content-type: text/css'); } elseif ($path['extension'] == 'js') { header('Content-type: application/javascript'); } elseif($path['extension'] == 'html') {header('Content-type: text/html');}?>
Para tener en cuenta codificaciones de texto y variantes de las extensiones habrá que apurar más, pero sirva esto de punto de partida. Para archivos html debería ser suficiente con el tipo por defecto sin ser necesario especificarlo en el archivo pre.php.
Actualización 10/07/2013
He creado un pequeño set de prueba que podeis descargar aquí. Después de subirlo al servidor. Hay que abrir el archivo path.php con el navegador. Nos dará una ruta para sustituir "ruta/a/carpeta" de los ficheros .htaccess y php.ini. Una vez hecho, ya se puede acceder al index.html y comprobar si funciona la compressión.
Fuentes:
Hola
ResponderEliminarhe realizado los cambios indicados pero no me comprime los .js ni .css
.htaccess php.ini y pre.php los he puesto en public_html/
Alguna idea gracias.
Marisa Valle
Decir que me he demorado es poco... bueno, al lío.
Eliminar¿Cómo miras si comprime los archivos? Yo por ejemplo uso la pestaña de red de firebug. En la cabecera de cada archivo como respuesta del servidor debería aparecer algo así:
"Content-Encoding: gzip"
¿Los archivos html sí los comprime? ¿Las extensiones están en minúsculas?
Lo he vuelto a probar en otra carpeta y me sigue funcionando. El experimento lo he hecho en un "RedComenzo" de RedCoruna. Supongo que no tiene porqué funcionar en otros servidores si tienen una configuración distinta.
¡Hola!. En primer lugar deseo darte las gracias por tu información, pues aunque me ocurre lo mismo que a Lencería Sexy, al menos me comprime el HTML con gzip.
ResponderEliminarGoogle Speed me sigue diciendo que los js y css están sin comprimir.
Estoy en Redcoruna, pero cambie al Plan Evolution porque me quedé colgado con el ancho de banda agotado, aunque seguramente fue debido al spam.
También tengo mi sitio funcionando con Wordpress...
¿Alguna idea de porqué puede ser?
Mi sitio es literario.net Gracias de antemano y un cordial saludo. Manuel
Uy, respondí a nivel general y no creo que te llegara una notificación.
EliminarHola Manuel,
ResponderEliminarExisten otras formas de hacerlo, por ejemplo:
- Compress your WordPress website
- Compressed CSS Compression
Pero la que expongo, mediante un php.ini, es la única que he logrado que me funcione en Redcoruna. De estos enlaces también te puede interesar lo referente a cache.
Para descartar conflictos con wordpress, primero probaría a hacerlo funcionar en un subdirectorio con lo básico. Ojea el set que he añadido al final del artículo.
Estaré atento a ver qué resultados obtienes.
En primer lugar deseo darte mis más sinceras gracias por tu atención. Le di mil y una vueltas al tema perono conseguí nada positivo.
EliminarComo estoy en Wordpress, finalmente me decidí por instalar W3 Total Caché...
Había probado también anteriormente WP Total Caché... y es curioso porqué mientras en el segundo conseguía un máximo de 92/100 para la versión de escritorio y un 97/100 para la versión móvil con Page Speed en el primero me da un 100/100 para las dos versiones, pero sin embargo al validar la página con otros servicios online me baja la puntuación de 75 a 48 sobre 100...
Para mi es un misterio pero de momento la voy a dejar así para ver lo que hace Google...
Gracias por todo. Manuel
!Hola, otra vez! :-)
ResponderEliminarDeseo pedirte disculpas en primer lugar, luego darte las gracias y felicitarte, pues volví a probar tu método de comprimir los archivos en Redcoruna y funciona perfectamente. No sé porqué el Page Speed de Google me daba que no en un principio y durante bastante tiempo, pero ahora no es así. Me da una puntuación de 92/100 y 90/100 sin usar ningún plugin de compresión. Muchas gracias de nuevo. Manuel
Me alegro mucho :)
EliminarEmpezaba a pensar que sólo me funcionaba a mí.
No dudes en preguntarme si necesitas algo.