Warning: session_start(): open(/www/htdocs/w017651d/tmp/wiki//sess_6e2eb5eb61f8f88f547dd759dacf8411, O_RDWR) failed: No such file or directory (2) in /www/htdocs/w017651d/wiki.blackcat-cms.org/inc/init.php on line 247

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /www/htdocs/w017651d/wiki.blackcat-cms.org/inc/init.php:247) in /www/htdocs/w017651d/wiki.blackcat-cms.org/inc/init.php on line 247

Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/w017651d/wiki.blackcat-cms.org/inc/init.php:247) in /www/htdocs/w017651d/wiki.blackcat-cms.org/inc/auth.php on line 424

Warning: session_write_close(): open(/www/htdocs/w017651d/tmp/wiki//sess_6e2eb5eb61f8f88f547dd759dacf8411, O_RDWR) failed: No such file or directory (2) in /www/htdocs/w017651d/wiki.blackcat-cms.org/doku.php on line 121

Warning: session_write_close(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/www/htdocs/w017651d/tmp/wiki/) in /www/htdocs/w017651d/wiki.blackcat-cms.org/doku.php on line 121

Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/w017651d/wiki.blackcat-cms.org/inc/init.php:247) in /www/htdocs/w017651d/wiki.blackcat-cms.org/inc/actions.php on line 210

Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/w017651d/wiki.blackcat-cms.org/inc/init.php:247) in /www/htdocs/w017651d/wiki.blackcat-cms.org/lib/tpl/dokuwiki/main.php on line 12
Scheme relative URLs [BlackCat CMS Dokumentation, Tutorials, Tipps und Tricks]

Benutzer-Werkzeuge

Webseiten-Werkzeuge


faq:other:urls

Scheme relative URLs

Unter „scheme relative URLs“ oder zu Deutsch relativen URLs versteht man Internetadressen, bei denen das führende Protkoll (z.B. http: oder auch https:) weggelassen wird. Dies ist beispielsweise dann von Vorteil, wenn Webseiten sowohl unverschlüsselt (http:) als auch verschlüsselt (https:) verfügbar sind. Das Prinzip ist in RFC 3986 von 2005 erläutert: http://tools.ietf.org/html/rfc3986#section-4.2

BlackCat CMS verwendet seit Version 1.0.3 standardmäßig eine relative URL und trägt diese in die Datei config.php ein, wenn diese Version erstinstalliert wird. Bei einem Update von vorherigen Versionen bleibt der vorherige Eintrag unverändert.

Eingeführt wurde diese Änderung, um die Möglichkeit zu haben, das Backend über eine verschlüsselte Verbindung (https:) aufzurufen. In diesem Fall müßte das CMS ansonsten sämtliche URLs, die im Backend verwendet werden (Links, Bilder, CSS-Dateien, JavaScripts, …), filtern und anpassen, je nachdem, ob der Aufruf per HTTP oder per HTTPS erfolgt ist.

In der Folge können jedoch Probleme mit älteren oder nicht entsprechend gestalteten Modulen auftreten. Siehe https://github.com/webbird/BlackCatCMS/issues/252

Das betrifft aktuell z.B. das kitFramework und die dortigen Erweiterungen imageTweak, FacebookGallery oder KeepInTouch.

Abhilfe:

Hier existieren im Grunde 3 Möglichkeiten, von denen jedoch nur zwei durch den Nutzer selbst angewendet werden können.

  1. Anpassung der Module, die nur mit absoluten URLs zurecht kommen (z.B. durch Verwendung von Zend_Http_Client anstelle von curl(), Prüfung und ggfs. Ergänzung der ermittelten URL, o.ä.)
  2. Anpassung der URL in der config.php; inkompatibel mit dem HTTPS-Patch
  3. Anpassung der Datei wb2compat.php, sofern nur Module betroffen sind, die mit der Konstanten WB_URL arbeiten

Anpassung config.php

Hier ist folgende Zeile zu ergänzen:

define('CAT_URL', '//<Server>/<Pfad>');

(Wobei <Server> und <Pfad> hier natürlich Platzhalter für die echten Werte in der jeweiligen BlackCat-Installation sind.)

Anpassung wb2compat.php

Die Datei wb2compat.php (im Verzeichnis ./framework) setzt alle Konstanten, die WB-Module benötigen, und erledigt einige andere Aktionen, die notwendig sind, um kompatibel zu WB zu sein. Hier findet sich folgende Zeile:

define('WB_URL', CAT_URL);

Diese kann bei Bedarf folgendermaßen geändert (im Sinne von ersetzt) werden:

$rel_parsed = parse_url(CAT_URL);
if(!array_key_exists('scheme',$rel_parsed ) || $rel_parsed['scheme']=='')
    define('WB_URL', (isset($_SERVER['HTTPS']) ? 'https:' : 'http:') . CAT_URL);
else
    define('WB_URL', CAT_URL);

faq/other/urls.txt · Zuletzt geändert: 2014/07/15 00:00 (Externe Bearbeitung)