J'ai un site multilingue et multidomaine. Il fonctionne à travers une installation CMS unique (Drupal), j'ai donc un seul répertoire racine. Donc, si j'ai un fichier robots.txt statique, je ne peux y afficher que les fichiers d'un seul domaine, pour autant que je sache.
Puis-je mettre une ligne dans .htaccess
Redirect 301 /robots.txt /robots.php
(ou instruction équivalente, et veuillez indiquer laquelle si elle est autorisée)
donc il redirige vers un fichier php dynamique, où je peux servir différents contiennent selon le $_SERVER['HTTP_HOST']
?
Et la même question pour sitemap.xml , donc je peux servir un sitemap.php dynamique qui indique différents liens pour chaque domaine différent.
Le problème avec l'absence d'utilisation de .txt et .xml est, comme mentionné, que tous les domaines partagent un seul répertoire physique sur l'ordinateur serveur.
Réponses:
Vous pouvez rendre n'importe quel fichier dynamique. La meilleure façon de le faire n'est pas via des redirections, mais via des règles de réécriture.
De cette façon, vous l'alimentez avec un script dynamique, mais l'URL ne change pas. La plupart des robots (y compris Googlebot) suivront les redirections pour robots.txt , mais certains robots seront confus si vous introduisez des redirections.
Notez que même si vous l'alimentez avec PHP, votre robots.txt devrait apparaître comme statique pour chaque robot pour chaque domaine. Il est bien de servir un contenu différent pour différents domaines, ou même pour différents agents utilisateurs. Cependant, servir un contenu différent de manière aléatoire ou en fonction de l'heure de la journée peut vraiment confondre les robots des moteurs de recherche et gâcher votre référencement.
Les plans de site sont bien nommés comme vous le souhaitez. Vous pouvez les rediriger ou utiliser une règle de réécriture pour les dynamiser à la même URL. Vous pouvez également les nommer comme
Reportez-vous ensuite à eux dans robots.txt :
ou soumettez-les aux moteurs de recherche manuellement via leurs outils pour les webmasters ou la console de recherche.
la source
RewriteRule ^robots\.txt$ robots.php [L]
sans le symbole \.^/robots\.txt$
) Serait requis si cette directive était dans la configuration du serveur, mais oui, elle ne correspondra pas dans les fichiers .htaccess par répertoire. Le préfixe de barre oblique sur la substitution (ie./robots.php
) Est facultatif dans ce cas.Oui, de la même manière, toute demande peut être "dynamique".
Cependant, vous ne redirigeriez pas (comme dans votre exemple de code), vous devriez réécrire en interne en utilisant mod_rewrite. (Identique à ce que Drupal fait probablement déjà.)
Par exemple, dans votre fichier racine .htaccess:
RewriteEngine
ne devrait se produire qu'une seule fois (même si cela n'a pas vraiment d'importance s'il se produit plusieurs fois).Vous devez juste vous assurer que cela n'entre pas en conflit avec les autres directives de votre fichier .htaccess. Donc, cela devrait probablement être près du début du fichier, certainement avant votre contrôleur frontal .
la source
Rendre le fichier sitemap dynamique est très bien - c'est un bon moyen de mettre à jour automatiquement vos sitemaps.
Rendre le fichier robots.txt dynamique (pour le même hôte! Faire cela pour des hôtes séparés est essentiellement juste un fichier robots.txt normal pour chacun d'eux.) Causerait probablement des problèmes: il n'est pas analysé chaque fois qu'une URL est explorée depuis le site , il peut donc arriver que la "mauvaise" version soit mise en cache. Par exemple, si vous faites analyser votre bloc de fichiers robots.txt pendant les heures ouvrables, il est possible qu'il soit mis en cache puis suivi pendant une journée - ce qui signifie que rien n'est analysé (ou alternativement, mis en cache lorsque l'exploration est autorisée). Par exemple, Google analyse le fichier robots.txt environ une fois par jour pour la plupart des sites.
la source
Il n'est pas nécessaire de créer sitemap.php car: 1. Pour chaque langue, vous pouvez exécuter un fichier sitemap.xml distinct et le spécifier dans les consoles des moteurs de recherche. 2. Les fichiers de plan de site standard peuvent être réécrits régulièrement pour inclure du contenu récent et cela les rend d'une manière dynamique - pour cela .php n'est pas requis. C'est au mécanisme de mise à jour interne et au cron de recréer le même fichier avec l'extension standard .xml
Les fichiers Sitemap.xml sont statiques et seules les mises à jour les rendent dynamiques - ils ne sont pas mis à jour en temps réel. Il est possible de les faire réécrire toutes les minutes, mais cela n'est pas nécessaire car: 1. Google ne le vérifiera pas dans moins d'une heure depuis la dernière soumission 2. Lorsque les fichiers de sitemap sont volumineux, réécrivez-les rendra souvent les performances du serveur kaput.
Lorsqu'il y a un grand volume de données et que le fichier du plan du site est supérieur à 50 Mo, un système avec plusieurs plans du site est requis. Cela signifie que sitemap2,3 ... .xml s'ajoutera à la liste du fichier principal, mais le contenu de ces fichiers reste également fixe jusqu'à ce que ces fichiers soient recréés (par cron par exemple).
De plus, une fois qu'un moteur de recherche a accédé au fichier, il n'y reviendra pas très rapidement (à moins qu'il ne soit fait manuellement). Cela confirme qu'il n'est en aucun cas nécessaire de créer une mise à jour en temps réel de sitemap.php, car un sitemap.xml normal est en lui-même peut être dynamique, mettant à jour avec un nouveau contenu tout au long de la journée ou de la semaine.
Je ne peux penser à aucun professionnel utilisant un sitemap.php. Cela ne servira à rien, car il existe d'autres façons meilleures / appropriées d'utiliser ces fichiers.
la source