¿Cómo agregar código .htaccess a través de una función?

2

Necesito agregar el siguiente código .htaccess a través de una función

    <IfModule mod_deflate.c>
# Insert filters
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
AddOutputFilterByType DEFLATE image/svg+xml

# Drop problematic browsers
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html

# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
</IfModule>

## Expires Caching ##

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 2 week"
ExpiresByType image/jpeg "access 2 week"
ExpiresByType image/gif "access 2 week"
ExpiresByType image/png "access 2 week"
ExpiresByType text/css "access 2 week"
ExpiresByType application/pdf "access 2 week"
ExpiresByType text/x-javascript "access 2 week"
ExpiresByType application/x-shockwave-flash "access 2 week"
ExpiresByType image/x-icon "access 2 week"
ExpiresDefault "access 2 week"
</IfModule>

## Expires Caching ## 

En mis temas function.php

function add_htaccess
{
//the above code to add
}

Simplemente no quiero agregarlo manualmente.

    
pregunta Ezhil 12.12.2011 - 13:31

3 respuestas

3
/**
 * Inserts an array of strings into a file (.htaccess ), placing it between
 * BEGIN and END markers. Replaces existing marked info. Retains surrounding
 * data. Creates file if none exists.
 *
 * @param array|string $insertion
 * @return bool True on write success, false on failure.
 */
function add_htaccess($insertion)
{
    $htaccess_file = ABSPATH.'.htaccess';
    return insert_with_markers($htaccess_file, 'MyMarker', (array) $insertion);
}

Notas:

  • $insertion es una matriz de cadenas. Cada cadena obtiene una nueva línea en el archivo.
  • Por supuesto, debes reemplazar 'MyMarker' con tu propio nombre. Su contenido se insertará en este contenedor específico, dejando solo el resto del archivo.
  • Esta función se basa en la función insert_with_markers() que solo se carga en el área de administración. Tendrá que cargar wp-admin/includes/misc.php manualmente de lo contrario.
  • El .htaccess tiene que poder escribirse para que funcione esta función.
respondido por el Geert 12.12.2011 - 14:14
2

Solo una sugerencia rápida: deberías tener una idea básica al ver cómo se hace en el núcleo de WordPress:

La fuente de save_mod_rewrite_rules () y las funciones insert_with_markers () pueden ser interesantes para usted.

Verá que las reglas se escriben en el archivo con PHP fwrite () .
El código que comprueba si el archivo .htaccess está presente, se puede escribir, etc. también será útil.

Quédate insipired.

PD: Puede haber filtros para facilitar el trabajo, pero aprender de todos modos es una buena idea,)

    
respondido por el Michal Mau 12.12.2011 - 14:08
0
respondido por el Sisir 12.12.2011 - 14:09

Lea otras preguntas en las etiquetas