web-dev-qa-db-fra.com

Ajoutez des directives .htaccess non réécrites sur des sites multiples via le filtre mod_rewrite_rules

Selon l'exemple sur Ajout de votre propre contenu .htaccess via WordPress , il est possible d'étendre le fichier .htaccess via theme/plugin. par exemple:

<?php
function my_htaccess_contents( $rules )
{
$my_content = <<<EOD
\n # BEGIN My Added Content
# Protect wpconfig.php
<Files wp-config.php>
    Order Allow,Deny
    Deny from all
</Files>
# END My Added Content\n
EOD;
    return $my_content . $rules;
}
add_filter('mod_rewrite_rules', 'my_htaccess_contents');

donnera le fichier .htaccess suivant:

# BEGIN My Added Content
# Protect wpconfig.php
<Files wp-config.php>
    Order Allow,Deny
    Deny from all
</Files>
# END My Added Content

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Mais malheureusement, cela ne fonctionne pas pour les multisites.

Toute suggestion comment faire gérer cela?

1
flowdee

Il n'y a pas de moyen intégré pour le faire. Le .htaccess est "imprimé à l'écran" de ceux de wp-admin que vous configurez le multisite (idem pour wp-config.php). Cette information n’est jamais écrite directement dans un fichier .htaccess comme un site unique.

Le code principal de wordpress pour multisite/htaccess se trouve ici: https://github.com/WordPress/WordPress/blob/703d5bdc8deb17781e9c6d8f0dd7e2c6b6353885/wp-admin/includes/network. php # L543

1
gabrielperezs