it-swarm.com.de

Können die Dateien robots.txt und sitemap.xml über eine .htaccess-Umleitung dynamisch sein?

Ich habe eine mehrsprachige und multidomain Seite. Es läuft durch eine einzigartige CMS-Installation (Drupal), so dass ich ein einziges Stammverzeichnis habe. Wenn ich also eine statische robots.txt habe, kann ich dort meines Wissens nur die Dateien für eine einzelne Domain anzeigen.

Könnte ich eine Zeile in .htaccess einfügen?

Redirect 301 /robots.txt /robots.php

(oder eine gleichwertige Anweisung, und bitte geben Sie an, welche zulässig ist)

so leitet es in eine dynamische php datei um, wo ich je nach $_SERVER['HTTP_Host'] unterschiedliche enthalten kann?

Und die gleiche Frage für sitemap.xml, damit ich eine dynamische sitemap.php bedienen kann, die unterschiedliche Links für jede unterschiedliche Domain anzeigt.

Das Problem, dass TXT und XML nicht verwendet werden, besteht, wie bereits erwähnt, darin, dass alle Domänen ein einziges physisches Verzeichnis auf dem Server-Computer gemeinsam nutzen.

10
Cesar

Sie können jede Datei dynamisch machen. Dies geschieht am besten nicht durch Weiterleitungen, sondern durch Umschreiben von Regeln.

RewriteRule ^robots\.txt$  /robots.php [L]

Auf diese Weise können Sie es mit einem dynamischen Skript ausführen, die URL ändert sich jedoch nicht. Die meisten Crawler (einschließlich Googlebot) folgen Weiterleitungen für robots.txt, aber einige Crawler werden verwirrt, wenn Sie Weiterleitungen einführen.

Beachten Sie, dass Ihre robots.txt-Datei erscheint für jeden Crawler für jede Domäne statisch sein sollte, auch wenn Sie sie mit PHP betreiben. Es ist in Ordnung, unterschiedliche Inhalte für unterschiedliche Domänen oder sogar für unterschiedliche Benutzeragenten bereitzustellen. Die zufällige oder tageszeitabhängige Bereitstellung unterschiedlicher Inhalte kann jedoch Suchmaschinen-Crawler verwirren und Ihre SEO durcheinander bringen.


Sitemaps können beliebig benannt werden. Sie können diese umleiten oder mithilfe einer Umschreiberegel dynamisch über dieselbe URL aktivieren. Sie können sie auch so benennen

  • site-a-sitemap.xml
  • site-b-sitemap.xml
  • site-c-sitemap.xml

Dann beziehen Sie sich auf sie in robots.txt:

Sitemap: http://www.example.com/example-sitemap.xml

oder senden Sie sie manuell über die Webmaster-Tools oder die Suchkonsole an die Suchmaschinen.

11

Ja, auf die gleiche Weise kann jede Anfrage "dynamisch" sein.

Sie würden jedoch nicht mleiten (wie in Ihrem Beispielcode), sondern intern umschreiben mit mod_rewrite. (Das gleiche wie das, was Drupal wahrscheinlich bereits tut.)

Zum Beispiel in Ihrer Root-.htaccess-Datei:

RewriteEngine On
RewriteRule ^robots\.txt$ robots.php [L]

RewriteEngine sollte nur einmal vorkommen (obwohl es eigentlich egal ist, ob es mehrmals vorkommt).

Sie müssen nur sicherstellen, dass es nicht mit anderen Anweisungen in Ihrer .htaccess-Datei in Konflikt steht. Dies sollte also wahrscheinlich in der Nähe der Anfang der Datei sein, sicherlich vor Ihrem Front-Controller.

5
MrWhite

Es ist in Ordnung, die Sitemap-Datei dynamisch zu gestalten - dies ist eine gute Möglichkeit, Ihre Sitemaps automatisch zu aktualisieren.

Das Dynamisieren der robots.txt-Datei (für denselben Host! Dies für separate Hosts zu tun, ist im Wesentlichen nur eine normale robots.txt-Datei für jeden von ihnen.) Würde wahrscheinlich Probleme verursachen: Sie wird nicht jedes Mal gecrawlt, wenn eine URL von der Site gecrawlt wird Es kann also vorkommen, dass die "falsche" Version zwischengespeichert wird. Wenn Sie beispielsweise das Crawlen Ihrer robots.txt-Datei während der Geschäftszeiten blockieren, wird sie möglicherweise dann zwischengespeichert und einen Tag lang verfolgt. Dies bedeutet, dass nichts gecrawlt wird (oder alternativ zwischengespeichert wird, wenn das Crawlen zulässig ist). Google durchsucht die robots.txt-Datei beispielsweise für die meisten Websites ungefähr einmal täglich.

4
John Mueller

Es ist nicht erforderlich, sitemap.php zu erstellen, da: 1. Sie für jede Sprache eine separate sitemap.xml-Datei ausführen und diese in Suchmaschinenkonsolen angeben können. 2. Standard-Sitemap-Dateien können regelmäßig neu geschrieben werden, um aktuelle Inhalte aufzunehmen, und sie werden auf dynamische Weise dynamisiert - dafür ist .php nicht erforderlich. Es liegt am internen Aktualisierungsmechanismus und am Cron, dieselbe Datei mit der Standarderweiterung .xml neu zu erstellen

Sitemap.xml-Dateien sind statisch und werden nur durch Aktualisierungen dynamisch. Sie werden nicht in Echtzeit aktualisiert. Es kann durchaus sein, dass sie jede Minute neu geschrieben werden, dies ist jedoch aus folgenden Gründen nicht erforderlich: 1. Google überprüft dies nicht in weniger als einer Stunde seit der letzten Übermittlung. 2. Wenn die Sitemap-Dateien groß sind, schreiben Sie sie neu Oft wird die Serverleistung kaputt machen.

Wenn es ein großes Datenvolumen gibt und die Sitemap-Datei größer als 50 MB ist, ist ein System mit mehreren Sitemaps erforderlich. Das bedeutet, dass die Sitemap2,3 ... .xml zur Liste der Hauptdatei hinzugefügt wird. Der Inhalt dieser Dateien bleibt jedoch so lange unverändert, bis diese Dateien neu erstellt werden (z. B. von cron).

Zu erwähnen ist auch, dass eine Suchmaschine, sobald sie auf die Datei zugegriffen hat, nicht sehr schnell wieder darauf zugreifen kann (es sei denn, dies erfolgt manuell). Es wird bestätigt, dass in keinem Fall eine Echtzeitaktualisierung von sitemap.php erforderlich ist, da eine normale sitemap.xml von sich aus dynamisch sein kann und den ganzen Tag oder die Woche über mit neuen Inhalten aktualisiert wird.

Ich kann mir keine Profis vorstellen, die eine sitemap.php verwenden. Es wird nichts nützen, da es andere bessere/richtige Möglichkeiten gibt, diese Dateien zu verwenden.

0
Inducto