Frage

Ich muss Zugang zu einem privaten Wiki zu einem Crawler bieten.

Das Wiki ist für alle anonymen Benutzer geschlossen - Sie müssen sich anmelden, um den Inhalt anzuzeigen. Ich muss jedoch einen einzelnen Crawler (identifiziert durch eine Benutzer -Agent -Zeichenfolge und einen einzigen IP) vollständigen Zugriff bereitstellen, damit der Inhalt indiziert werden kann . Es ist ein interner Crawler, daher ist der Zugang zu seinen Ressourcen nur bei erfolgreichem Login verfügbar.

Irgendwelche Vorschläge, wie der Zugriff auf einen einzelnen Client (und nicht der Benutzer, da ein Crawler nicht in der Lage ist, sich im Wiki zu protokollieren)?

War es hilfreich?

Lösung

Es gibt tatsächlich eine Lösung für dieses Problem. Wie ich bereits erwähnt habe, wird ein Crawler eine bestimmte IP verwenden und es wird nur der Crawler sein, den sie benutzt. So schnell und schmutzig, aber immer noch eine zivilisierte Art, dies zu tun, ist:

$crawler_ip = '1.2.3.4';
if ( $_SERVER['REMOTE_ADDR'] == $crawler_ip ) {
    $wgGroupPermissions['*']['read'] = true;
}

Einfach, oder? :)

Andere Tipps

Wenn Sie Zugriff auf die Datenbank haben, können Sie einen Datenbank -Crawler in einem System wie Solar für Sie verwenden.

Sie können eine benutzerdefinierte Benutzergruppe für Ihren Crawler erstellen, sagen wir, wir nennen es "Crawler". Da es sich trotzdem anmelden muss, wäre das die einfachste Lösung.

Geben Sie es einfach vor, wie diese Berechtigungen wie folgt haben:

$wgGroupPermissions['*']['read']    = false;
$wgGroupPermissions['crawler']['read']    = true;

Bezug: http://www.mediawiki.org/wiki/Manual:user_rights#changing_group_permissions

bearbeiten Hmm warte, ich habe falsch verstanden. Der Crawler ist wahrscheinlich kein protokolliertes Konto, oder? Halten Sie sich an und überprüfen Sie, ob Sie Berechtigungen auf eine IP einstellen können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top