Notre site Web WordPress a une page d'accueil HTML statique. Une demande de domaine renvoie la page index.html
.
Cela a bien servi nos objectifs, mais a posé un problème lorsque vous essayez de prévisualiser un message ou une page lors de la modification. Étant donné que les URL de prévisualisation n'incluent pas index.php
, toutes les demandes de prévisualisation affichent la page d'accueil statique; par exemple.,
http://www.example.com/?page_id=7848&preview=true
OR
http://www.example.com/?post_type=solution&p=6480&preview_id=6480&preview_nonce=730eb2844c&preview=true
Les deux affichent la page d'accueil. Insérer manuellement index.php
entre www.example.com/
et ?<querystring>
fonctionne et affiche l'aperçu de la page, mais c'est pénible.
J'ai essayé ce qui suit dans functions.php
, ce qui met à jour le fichier .htaccess
, mais la page d'accueil apparaît toujours.
function custom_rewrite_preview( )
{
add_rewrite_rule(
'(.*)\?(.+)&preview=true$',
'$1index.php?$2&preview=false',
'bottom'
);
}
add_action( 'init', 'custom_rewrite_preview' );
Je ne sais pas si la fonction et/ou la regex sont fausses ou si la réécriture doit avoir lieu à un moment différent.
Ne changez pas vos réécritures. Placez le contenu du fichier HTML dans un fichier de modèle front-page.php de votre thème.
Vous pouvez ajouter la règle de réécriture suivante dans votre .htaccess
:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} ^taxo=([^&]+)&([^=]+)=([^&]+)&([^=]+)=([^&]+)&([^=]+)=(.*)$
RewriteRule ^/?$ /%1/%2/%3/%4/%5/%6/%7? [L,R=301]
</IfModule>
Effacez le cache de votre navigateur et tout domaine qui suit cette structure:
http://www.example.com/?page_id=7848&preview=true
Va rediriger vers:
http://www.example.com/index.php?page_id=7848&preview=true
Cela a été vérifié et testé de mon côté en utilisant le testeur htaccess .