Supprimer un sous-domaine

Bonjour,

J'ai un site WordPress (WP) chez OVH, abonnement Pro, rehve.fr, sur lequel je rencontre d'importantes difficultés de requêtes refusées en grand nombre qui font tomber le visiteur sur la page d'installation de WP au lieu d'une page standard du gentes 'accès refusé'. J'ai ouvert plusiieurs tickets chez OVH et mené des suivis déraillés sur les forums WP, sans résultat probant à ce stade.

Il y a plusieurs années j'ai créé un sous-domaine nous.rehve.fr. J'imagine qu'il peut l'une des origines de mon problème. Je souhaite le désolidariser du site principal pour en faire un site indépendant Je vois plein de tutos et conseils pour créer un sous-domaine, mais aucun pour supprimer un sous-domaine.

La principale difficulté me semble être que la base de données est commune aux 2 sites. Le préfixe des tables du site principal est 'wp_', celui du sous-site est 'wpNous_'.

Pour en faire un site indépendant, j'imagine que j'ouvre un nouvel hébergement chez OVH, j'installe un WP vierge, j'y charge les uploads de nous.rehve.fr mais comment fais-je pour scinder la base de données entre les tables 'wp_' qui n'interressent plus le nouveau site et les tables 'wpNous_' qui le concernent ?

Enfin, une fois le nouveau site opérationnel comment dois-je faire pour supprimer le sous-domaine dont je n'ai plus l'utilité sur le site d'origine ?

Merci d'avance de vos conseils.

Bonjour @HerveM9

Le retour d'une page en erreur ou non trouvée n'est pas du ressort de OVH, mais de votre configuration de WordPress.

Bonjour @HerveM9

Pour l'installation de WordPress dans un sous-domaine, je vous suggère de regarder le guide suivant :

https://wordetweb.com/word-et-web/WORDPRESS-ajouter-deuxieme-domaine-2eme-installation-de-Wordpress-FR.htm

Lire aussi attentivement mon guide :

https://wordetweb.com/word-et-web/WORDPRESS-guide-installation-de-WordPress-premier-domaine-chez-OVH-FR.htm

Nota : pour le préfixe de vos tables, vous pouvez mettre : wp_new

Comme cela les tables de l'ancien site et du nouveau seront bien différenciées.

Merci Gaston,

Je vais créer un domaine/hébergement sur OVH pour transférer le sous-site WP de mon hébergement actuel. Vos tutoriels vont m'être très utiles, car mes précédentes installations remontent à plusieurs années et j'ai un peu oublié la procédure.

Par contre, après revue rapide de ces documents je ne vois pas mon cas précis où je ne souhaite réinstaller que les tables de la basse de données préfixées 'wpNous_'. Comment fais-je pour les séparer des autres tables (beaucoup plus volumineuses) préfixées 'wp_' ?

J'espère avoir formulé ma question à peu près clairement, désolé si ne n'est pas le cas :roll_eyes:

En fait, avec l'hébergement PRO dont je dispose déjà je peux créer un deuxième site sur ce même hébergement et une deuxième base de données indépendante pour accueillir les tables préfixées 'wpNous_'.

Cela ne change rien à ma question? Merci.

Après un travail soutenu avec Gaston (et de l'assitance OVH), nous avons pu régler, au moins pour le moment, le problème de requêtes refuséessur 'rehve.fr' qui faisait tomber les visiteurs du site sur la page d'installation de WordPress en 5 mn au lieu de la page d'accueil du site.

1. Blocage des IP venant de de Chine, de Hong-Kong et de Russie avec le code suivant ajouté dans le .htaccess (recommandation assistance OVH)

# Blocage accès d'IP venant de Chine et de Russie
SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE HK BlockCountry
Deny from env=BlockCountry

Blocage d'IP

90% des requêtes refusées provenaient de Chine et je ne pense pas avoir beaucoup de lecteurs chinois…

2. Gel pour 10mn des IP envoyant plus de 60 requêtes en 60 secondes avec le code suivant dans le ‘index.php’ (recommandation forum OVH, code généré par IA Copilot) :

// --- CONFIG ---
$rateLimitMaxRequests = 60; // max requêtes par IP
$rateLimitWindowSeconds = 60; // fenêtre en secondes
$banDurationSeconds = 600; // durée de ban (10 min)
$storageDir = _DIR_ . '/rate_limit_storage';

// Crée le dossier de stockage si besoin
if (!is_dir($storageDir)) {
mkdir($storageDir, 0755, true);
}

$ip = $_SERVER['REMOTE_ADDR'] ?? 'unknown';
$now = time();
$ipFile = $storageDir . '/ip_' . md5($ip) . '.json';

// Charge l’état pour cette IP
$data = [
'requests' => [],
'banned_until' => 0,
];

if (file_exists($ipFile)) {
$json = file_get_contents($ipFile);
$tmp = json_decode($json, true);
if (is_array($tmp)) {
$data = array_merge($data, $tmp);
}
}

// Vérifie si IP bannie
if ($data['banned_until'] > $now) {
http_response_code(429);
header('Retry-After: ' . ($data['banned_until'] - $now));
exit('Trop de requêtes. Votre IP est temporairement bloquée.');
}

// Nettoie les requêtes trop anciennes
$windowStart = $now - $rateLimitWindowSeconds;
$data['requests'] = array_filter(
$data['requests'],
function ($ts) use ($windowStart) {
return $ts >= $windowStart;
}
);

// Ajoute la requête courante
$data['requests'][] = $now;

// Vérifie le nombre de requêtes dans la fenêtre
if (count($data['requests']) > $rateLimitMaxRequests) {
// Ban temporaire
$data['banned_until'] = $now + $banDurationSeconds;

file_put_contents($ipFile, json_encode($data));
http_response_code(429);
header('Retry-After: ' . $banDurationSeconds);
exit('Trop de requêtes. Votre IP est temporairement bloquée.');
}

// Sauvegarde l’état
file_put_contents($ipFile, json_encode($data));

// --- Suite du script normal (WordPress, app, etc.) ---

Cela fonctionn et je n'ai plus de requêtes refusées depuis 1 semaine. Du coup pour l'instant il n'apparait pas utile de séparer le sous-site du site principal.

Merci @HerveM9 pour ce retour très précis.

Personnellement, j'aurai été plus strict : 20 demandes de pages affichées maximum par minute.