Der Link-Checker ist so konfiguriert, dass er keine Aktion ausführt, wenn ein Link defekt ist. Wie kann man in diesem Fall die Überprüfung von externen Links durch den Checker deaktivieren? Bei der Erstellung von CPU-Profilen und der Analyse von Thread-Dumps wirkt sich die Linküberprüfung auf die Performance aus und soll deaktiviert werden.

Deaktivieren der Linkprüfung von URLs mit Hilfe regulärer Ausdrücke

Der Link-Checker kann so konfiguriert werden, dass er alle Links ignoriert.

Die folgende Konfiguration ist spezifisch für die Publishing-Instanz. Um für Autor zu konfigurieren, ändern Sie den Pfad von ../config.publish/.. zu ../config.author/.... Die folgenden Schritte werden im CRX Content Explorer ausgeführt.

  1. Erstellen eines Konfigurations-Knotens (mit Knotentyp sling:OsgiConfig) im Projekt (/apps/appname/config.publish/{OSGi Service PID})
  2. Alternativ können Sie die Datei aus /libs/cq/linkchecker/config.author/com.day.cq.rewriter.linkchecker.impl.LinkCheckerImplin in den config-Ordner Ihrer Wahl kopieren (also /apps/myapp/config.publish).
  3. Ändern Sie die Eigenschaft service.check_override_patterns von "^system/" auf "^.".
  4. Löschen Sie alle Knoten unter /var/linkchecker, um den Link-Checker von der periodischen Neuüberprüfung der URLs abzuhalten.
  5. Wenn die Konfiguration auf der Author-Instanz durchgeführt wurde, dann erstellen Sie ein Paket und installieren Sie es auch auf Ihren Publishing-Instanzen.

Hinweis:

Wenn Sie service.check_override_patterns verwenden, prüft der Link-Checker immer noch, ob die URL in Bezug auf die Zeichen und die Struktur gültig ist. In CQ5.4 und höheren Versionen können Sie jedoch service.special_link_patterns="*" verwenden, statt service.check_override_patterns="^." um die Gültigkeitsprüfung zu vermeiden.

Hinweis:

Achten Sie bei der Anwendung dieser Konfiguration darauf, welchen regulären Ausdruck Sie verwenden.  Der obige reguläre Ausdruck deaktiviert alle Link-Überprüfungen und das Link-Rewriting. Wenn Sie also den JCR Resource Resolver oder /etc/map-Mappings verwenden, um Links auf Ihrer Website neu zu schreiben, dann deaktiviert diese Konfiguration diese Neuschreibungen.  Weitere Optionen finden Sie unten.

Das Einfügen dieses Codes in die Page Component jsp verhindert die Überprüfung externer Links durch Aufruf von LinkCheckerSettings.fromRequest(slingRequest).setIgnoreExternals(true).  In den meisten Fällen würden Sie es nur in Veröffentlichungs-Instanzen implementieren, nicht im Autor-Modus.  Im Folgenden finden Sie einen Code zu Demonstrationszwecken:

<%
org.apache.sling.runmode.RunMode runmode = sling.getService(org.apache.sling.runmode.RunMode.class);
String[] runmodes = runmode.getCurrentRunModes();
boolean isPublish = false;
String [] expectedRunModes = {"publish"};
if(runmode.isActive(expectedRunModes)) {
isPublish = true;
}

if(isPublish) {
LinkCheckerSettings s = LinkCheckerSettings.fromRequest(slingRequest);
s.setIgnoreExternals(true);
}
%>

Wenn Sie die Linkprüfung nur für eine bestimmte Komponente oder einen Teil der Seite deaktivieren möchten, können Sie sie mit diesem Code wieder aktivieren:

<%
s.setIgnoreExternals(false);
%>

Deaktivieren Sie alle Linküberprüfungen über die Konfiguration

  1. Wenn bei Ihnen CQ5.5 SP2.1 läuft, fahren Sie fort. Wenn Sie CQ5.6.1 verwenden, installieren Sie Hot Fix NPR-3751 (Siehe hier für einige Details zu Hot Fixes).
  2. Gehen Sie zu /system/console/configMgr und melden Sie sich als Administrator an
  3. Suchen Sie nach „Link Checker Transformer“
  4. Aktivieren Sie das Kontrollkästchen „Überprüfung deaktivieren“ und speichern Sie
  5. Gehen Sie zu /crx/Explorer und melden Sie sich als Administrator an
  6. Öffnen Sie den „Content Explorer“.
  7. Navigieren Sie zu /var/linkchecker
  8. Klicken Sie mit der rechten Maustaste auf den Knoten und wählen Sie „Rekursiv löschen“ aus.
  9. Klicken Sie auf „Alle Speichern“.

Hinweis:

Mit dieser Methode können Sie alle Linküberprüfungen deaktivieren, ohne das Überschreiben von Links zu deaktivieren.

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie