web-dev-qa-db-fra.com

Rediriger toutes les URL de publications de .html sans .html vers .html

Comment puis-je rediriger tous les messages permaliens vers .html, dans Wordpress? maintenant tous mes posts se terminent par .html, mais avant c'était sans .html

pour être plus clair, par exemple, une URL de post telle que celle-ci www.example.com/posturl pour être redirigé vers www.example.com/posturl.html .il est simple de les rediriger un par un, mais j'ai besoin d'une règle pour rediriger tout des postes .

Je vous remercie

2
whitelord

Vous avez cité ce que vous faites cela à des fins de référencement.

À l'heure actuelle, rien n'indique que l'ajout de .html à la fin de l'URL améliorera le référencement de Google. De votre propre aveu, Google indexe à la place les URL de fin non html.

De plus, l'extension .html implique que le contenu est statique et ne changera jamais, ce qui signifie que Google peut l'indexer une seule fois et ne jamais y revenir. Ne serait-il pas préférable que Google revienne? D'autant plus que la "fraîcheur" d'une page joue désormais un rôle important dans son classement.

1
Tom J Nowell

Il y a un risque avec l'approche .htaccess. Il doit écrire des règles spécifiques pour ne cibler que les publications. Pas toutes les URL sur le serveur.

Ceci est une autre approche. Fonctionne dans Wordpress, c'est un peu "sûr" mais un peu lourd en termes de performances car il faut charger les plugins avant de commencer. La théorie est simple. Rediriger toute URL ne contenant pas. dans le dernier segment comme/uri ou/uri/à /uri.html ... UNIQUEMENT SI WordPress signale une erreur is_404 () .

Placez ce plugin dans /wp-content/mu-plugins/redirector.php.

// Only here we have a valid is_404() to check if occurs.
add_action('wp', function(){
    if(!is_404()) return; // Bail if not a 404 (WordPress has got your back)
    // Extract the URI and the Query-String (which is used later again)
    list($uri, $qs) = explode('?', $_SERVER['REQUEST_URI']);
    // Bail if current URL contains a . in the last segment of the URI
    if(!preg_match('~/[^/\.]+/?$~', $uri)) return;
    // Right-trim the last ./ and append the .html to it
    $uri = rtrim($uri, '/.').".html".(!empty($qs) ? "?{$qs}" : null);
    // Redirect to the new URL (with a 301 to keep link juice flowing) and hope it works :)
    wp_redirect($uri, 301); die; // Over and out!
});

Je préfère opter pour une redirection .htaccess à tout moment mais cela dépend. Si vous avez vraiment bousillé votre blog en modifiant la structure permalien LIVE(ce qui ne devrait jamais être fait lorsque du trafic/des classements sont atteints), il s'agit d'une méthode plus sûre car elle n'agit que lorsque is_404 () se produit. Ajustez-le si vous avez des problèmes avec les catégories, etc.

Attention :PHP 5.3+ Fermeture utilisée. Envisagez de revenir à la syntaxe et à la compatibilité de PHP 5.2 ... une affectation:)

1
EarnestoDev

Vous pouvez éditer votre fichier .htaccess directement ou télécharger un plugin d'éditeur htaccess pour WordPress. Ensuite, écrivez votre règle semblable à ceci:

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*) $1.html [nc]

Pour plus instructions détaillées

1
Bitmap Media

Vous pouvez ajouter une extension à vos liens permanents Post dans Admin Wordpress en allant à Settings > Permalinks et en créant une structure personnalisée avec .html à la fin.

Par exemple:

(•) Custom Structure: /%category%/%postname%.html

Cela ne fonctionnera qu'avec les messages, cependant. Si vous souhaitez ajouter un fichier .html aux liens permanents de Pages, vous pouvez essayer un plugin tel que Extensions de page personnalisées ou utiliser la règle .htaccess publiée par Bitmap.

1
supertrue