comment gérer les pages html incluses dans des pages php ?

Nouveau WRInaute
Bonjour,
j'inclus des bouts de code html dans des scripts php ( par exemple j'inclus menu.htm dans toutes mes pages php ... le menus des liens vers toutes les rubriques ).
MAIS l'ami google indexe la page menu.htm ! Evidemment il me dit qu'il n'y a pas de balise title, pas de description ... bref que c'est une mauvaise page. Est ce que je dois inclure en haut du fichier menu.htm une meta robots noindex ???
Question importante, car des bouts de code en include, j'en ai des 100aines ! et tous indexés par google et fichés comme "mauvaises pages ".
Merci
 
Nouveau WRInaute
Louis63 a dit:
un bout de code ou l'adresse du site serait utile pour bien comprendre ce qui est mal fait.

exemple page produit php :

<?php
<head>
<title>page produit</title>
print"page produit";
include("menu.htm");
print"suite page produit";
?>

code menu.htm :

<div>rubrique1</div>
<div>rubrique2</div>
<div>rubrique3</div>

la page php est correcte pour le référencement car elle a du contenu, un titre une description etc ... mais la page menu.htm pollue le référencement, elle ne ressemble à rien si elle n'est pas dans le contexte d'une page produit.
Est ce que menu.htm peut ressembler à ça par exemple :

<meta name="robots" content="noindex" />
<div>rubrique1</div>
<div>rubrique2</div>
<div>rubrique3</div>

sinon, comment faire pour que google ne prenne pas en compte le fichier menu.htm ?
MERCI
 
WRInaute accro
michel vernet a dit:
sinon, comment faire pour que google ne prenne pas en compte le fichier menu.htm ?
En le mettant en dehors du webroot.

NB: si t'as un include de menu.htm dans toutes tes pages PHP, il y a un petit problème de conception. Idem pour le <head><title> ...
 
WRInaute passionné
Surtout pas de noindex.

C'est bizarre que Google ait trouvé les fichiers que tu inclus, il doit y avoir un lien quelque part, il n'aurait pas deviné tout seul sinon.

Bref en général, on les met dans un dossier, par exemple /include/ qui n'est pas accessible en http (donc au même niveau que le dossier du site, souvent appelé /www/ ou au-dessus). Ou en sous-dossier en indiquant au robots.txt d'interdire les moteurs de recherche d'indexer le contenu. Mais encore une fois, à partir du moment ou tu les changes de place ou renommes, Google n'est pas sensé les trouver, il doit y avoir un lien quelque part puisqu'il n'a pas accès au code source php...
 
Nouveau WRInaute
Merci à tous. Oui je sais que c'est très mal programmé. En plus je n'ai aucun dossier, tout est pele mêle dans le même ! Tu as raison rick38, il ne devrait pas trouver les htm inclus ... je vais voir ma sitemap. A tous les coups ils sont dednas. Est ce que ça expliquerait cela ?
 
Nouveau WRInaute
non ils ne sont pas dans ma sitemap ... bizarre.
Bon, donc pas de noindex alors. En fait il y a obligatoirement des liens quelquepart c'est ça ? je dois les trouver et les supprimer donc ... bon je vais chercher
merci
 
WRInaute occasionnel
spout a dit:
En le mettant en dehors du webroot.

et

rick38 a dit:
Bref en général, on les met dans un dossier, par exemple /include/ qui n'est pas accessible en http

Ce qui arrive parfois, c'est que le contenu du dossier contenant le fichier htm est lisible (pas de fichier index.htm (ou index.php).
Pour éviter que le sous dossier soit listable, il y a la commande dans l'htaccess : Options -Indexes

Tous mes sites quasiment sont basé sur des pages php qui intègrent des pages htm. Seul truc, les pages html ne doivent intégrer aucune balises <head> (souvent intégrées automatiquement par les éditeurs html standards) ni </html> en fin de contenu html.
 
WRInaute passionné
Moi je met le code html dans des fonction php, elles-mêmes contenues et regroupées dans les fichiers php inclus :

Code:
<?php 
<head>
<title>page produit</title>
print"page produit"; 
include("librairie.php");
menu();
print"suite page produit";
?>

code librarie.php :

function menu()
{
?>
<div>rubrique1</div>
<div>rubrique2</div>
<div>rubrique3</div>
<?php
}
.. autres fonctions
C'est très classique comme façon de procéder.
Au lieu de ?> et <?php, tu peux utiliser :
Code:
echo  "<div>rubrique1</div><div>rubrique2</div><div>rubrique3</div>"
 
Discussions similaires
Haut