J'ai eu un type de message personnalisé avec slug comme ( sometext ) que j'ai changé en ( someothertext ) Et ça marche très bien
Donc par exemple:
mes messages avec des URL comme
http://localhost/sometext/innerposts
est redirigé vers
http://localhost/someothertext/innerposts
mais pas ma page d'archive
fondamentalement, je voudrais rediriger
http://localhost/sometext/ to
http://localhost/someothertext/
dans mon fichier .htaccess j'ai essayé d'ajouter une chaîne pour que cela fonctionne
RewriteRule ^/sometext$ ^/someothertext/$ [R=301,L]
mais ça échoue.
Je suis très pauvre avec les réécritures .htaccess. J'apprécierais vraiment si quelqu'un m'aidait avec ça.
Merci.
Le lien vers la page d'archive est enregistré dans les règles de réécriture de WordPress. Ces règles permettent de localiser plusieurs emplacements à l’avant de votre système WordPress. Lorsque vous modifiez la slug
d'un type de publication personnalisé, les pages normales seront redirigées directement vers le nouvel emplacement, mais pas la page d'archivage, car les règles de réécriture ne sont pas régénérées.
Pour résoudre ce problème, allez dans Paramètres -> Permaliens et enregistrez à nouveau votre structure de liens permanents, rechargez votre page et la page d'archivage se chargera. correctement.
La règle de réécriture dans votre .htaccess
ne sera pas nécessaire.
De plus, never ne mettez aucune règle de réécriture dans votre .htaccess
, à l'exception de celles que WordPress y a écrites. Si vous souhaitez ajouter des règles, utilisez l’API Rewrite .
Comme il a été mentionné. Ne mettez jamais de règles de réécriture dans votre .htaccess, utilisez plutôt Rewrite API . Pour atteindre votre objectif, utilisez le code suivant dans votre plug-in functions.php ou spécifique au site:
add_action( 'generate_rewrite_rules', 'my_rewrite_rules' );
function my_rewrite_rules( $wp_rewrite )
{
$wp_rewrite->rules = array(
'sometext/(.+?)/?$' => $wp_rewrite->index . '?someothertext='.$wp_rewrite->preg_index( 1 ),
'sometext/(.+?)/([0-9]{1,})/?$' => $wp_rewrite->index . '?someothertext='.$wp_rewrite->preg_index( 1 ). '&paged=' . $wp_rewrite->preg_index( 2 ),
) + $wp_rewrite->rules;
}