J'ai besoin d'ajouter le code .htaccess suivant via une fonction
<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 ##
Dans mes thèmes, function.php
function add_htaccess
{
//the above code to add
}
Je ne veux tout simplement pas l'ajouter manuellement.
/**
* 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);
}
Remarques:
$insertion
est un tableau de chaînes. Chaque chaîne obtient une nouvelle ligne dans le fichier.insert_with_markers()
qui n'est chargée que dans la zone d'administration. Sinon, vous devrez charger wp-admin/includes/misc.php
manuellement.Juste un petit conseil - vous devriez avoir une idée de base en regardant comment cela se passe dans le noyau de WordPress:
La source de save_mod_rewrite_rules () et insert_with_markers () les fonctions pourraient être intéressantes pour vous.
Vous verrez que les règles sont écrites dans le fichier avec PHP fwrite () .
Le code qui vérifie si le fichier .htaccess
lui-même est présent, inscriptible, etc. sera également utile.
Obtenez insipired.
PS: Il peut y avoir des filtres pour rendre le travail plus facile, mais apprendre les méthodes utilisées est quand même une bonne idée,)
L'action est generate_rewrite_rules
.
Vérifiez ces questions que vous pourrez trouver utiles: