J'ai plusieurs sites wordpress, je veux rediriger le site principal vers l'un des sous-sites, mais la redirection dans .htacecss donne une erreur. Est-il possible de rediriger un site principal vers son sous-site? Cela ne semble pas possible, mais je ne suis pas un expert en wordpress, il suffit donc de vérifier.
La redirection devrait être comme
redirection 301 www.example.com/main-site www.example.com/main-site/sub-site
Ou s'il y a un autre moyen de le faire?
Vous pouvez utiliser l'action parse_request
pour accomplir cela. Activez simplement ce plugin sur votre blog principal. Placez le code suivant dans un fichier .php et téléchargez-le dans le répertoire de vos plugins.
/*
Plugin Name: Redirect Main Site To Sub-Site
Description: Redirect 'main-site' to 'main-site/sub-site/'
Version: 0.1
Author: WPSE
Author URI: http://wordpress.stackexchange.com
License: GPL2
*/
add_action('parse_request', 'redirect_to_sub_site');
function redirect_to_sub_site(){
global $wp;
#Sniff requests for a specific slug
if('main-site' === $wp->request){
#The URL to redirect TO
$url = 'http://www.example.com/main-site/sub-site/';
#Let WordPress handle the redirect - the second parameter is obviously the status
wp_redirect($url, 301);
#It's important to exit, otherwise wp_redirect won't work properly
exit;
}
}
Faites moi savoir si vous avez des questions.
Il semble que le $wp->request
suggéré dans la réponse ci-dessus soit toujours une chaîne vide (dans WPMS 4.5.2). Vous pouvez donc le comparer à is_main_site();
.
La réponse acceptée ne fonctionne pas pour Wordpress 4.9.8. Voici le code mis à jour et testé. Placez ceci dans function.php du thème actif.
<?php
function wpse66115_redirect_to_sub_site() {
if ( is_main_site() ) {
exit( wp_redirect( 'http://www.example.com/main-site/sub-site/', 301 ) );
}
}
add_action( 'parse_request', 'wpse66115_redirect_to_sub_site' );
?>