MediaWiki Sitemap mittels PHP generieren

Fertige Wiki’s mittels MediaWiki unter Microsoft Azure sind eine feine Sache. Sie sind schnell eingerichtet und installiert. Eine fertige Vorlage ist vorhanden, und auch der Aufbau mit den ersten Beiträgen funktioniert innerhalb weniger Minuten. Wenn das Wiki dann aber veröffentlicht werden soll, stellt sich schnell die Frage, wie eine MediaWiki Sitemap automatisch generiert werden kann.

Anmeldung an Kudu

MediaWiki Sitemap

Zuerst ist eine Anmeldung am Kudu-Web-Frontend notwendig. Das System ist in Microsoft Azure über eine eigene URL für jede Website erreichbar:

Powershell starten

Als nächstes sucht man sich die Powershell über das obere Menü unter „Debug Console“.

Sitemap generieren

Als letzten Schritt führt man den Befehl zur Erstellung der Sitemap aus. Es handelt sich dabei um ein kleines PHP-Programm, welches in der MediaWiki-Vorlage automatisch enthalten ist.

php maintenance/generateSitemap.php --compress=no

Optionen

Folgende Optionen stehen für das Script zur Verfügung:

--help

zeigt die verfügbaren Optionen für generateSitemap.php an

--fspath=<path>

Der Pfad, in dem die fertige Sitemap gespeichert werden soll. Für die spätere Nutzung muss dieser Pfad natürlich online sichtbar sein.

Beispiel: sitemap/

--identifier=<identifier>

Welche Site Identifier soll genutzt werden? Standardmäßig wird $wgDBname verwendet

--urlpath=<prefix>

Die URL, die auf –fspath zeigt, also z.B. http://wiki.example.com/sitemap/

Besonders für Google ist das hilfreich, diese Pfadangabe wird jeder URL in der Sitemap vorangestellt und von Google erwartet. Diese Einstellung sollte immer in Verbindung mit –server verwendet werden.

--server=<server>

Der Servername einschließlich Protokoll (http/https), der in den URL’s verwendet werden soll. Beispiel: http://en.wikipedia.org

Manchmal ist dieser optionale Parameter notwendig, wenn die Erkennung des Servernamens fehlschlägt und Einträge in der Sitemap mit „localhost“ erscheinen.

--compress=[yes|no]

Schaltet die Kompression der Sitemap-Datei ein oder aus. Standardmäßig ist die Kompression aktiviert.

Beispiel zur Erstellung einer MediaWiki Sitemap

MediaWiki Sitemap für Google Webmaster Tools erstellen:

Zuerst legt man ein eigenes Verzeichnis für die Sitemap an:

mkdir sitemap

Danach generiert man die Sitemap mittels des Scripts:

php maintenance/generateSitemap.php \
--fspath sitemap \
--server http://mydomain.org \
--urlpath http://mydomain.org/sitemap

CDN: Konfigurieren von Cacheoptionen für statische Dateien

Bei Integration von Azure CDN (Content Delivery Network) in Ihre Azure-Web-App kann man einrichten, wie lange statische Inhalte in den CDN-Endpunkten zwischengespeichert werden sollen. Die Einstellung erfolgt dabei über die IIS-Konfigurationsdatei web.config innerhalb der Web Applikation. Weiterlesen

HTTPS / SSL auf einer Website erzwingen

Den Besucherverkehr vom HTTP-Protokoll auf die HTTPS-Version einer Website zur Nutzung von SSL umzuleiten ist ganz einfach.

Die folgende Methode funktioniert nicht nur mit Microsoft Azure Web Services App, sondern auch mit jeder anderen Website, die auf einem Microsoft IIS (Internet Information Server) Webserver läuft. Bei vielen Kunden setzen wir diese Variante ein, um den Datenverkehr im Internet sicherer zu machen und HTTPS-SSL-Zertifikate sinnvoll zu nutzen. Denn in vielen unserer Hosting-Pakete sind einfachere SSL-Zertifikate für den www-Webserver bereits inklusive enthalten.

HTTPS bzw. SSL aktivieren

Nachdem es innerhalb des Azure Portals keinen Schalter oder keine Option gibt, um den verschlüsselten Datenverkehr zu erzwingen, wird eine web.config Datei im Stammverzeichnis der Web-App angelegt. Das geht am einfachsten über die in Azure integrierte App Kudu, die in jeder WebApp über erreichbar ist. Dort findet man unter Debug Console -> CMD einen Zugriff auf die Verzeichnisstruktur.

Kudu

Unter dem Ordner site\wwwroot\ wird nun eine neue Datei web.config angelegt und mittels dem in Kudu integrierten Editor bearbeitet.

Der Inhalt von web.config:

<configuration>
<system.webServer>
<rewrite>
    <rules>
	<rule name="HTTP to HTTPS redirect" stopProcessing="true"> 
	<match url="(.*)" /> 
	<conditions> 
		<add input="{HTTPS}" pattern="off" ignoreCase="true" />
	</conditions> 
	<action type="Redirect" redirectType="Permanent" url="https://{HTTP_HOST}/{R:1}" />
      </rule>   
    </rules>
</rewrite>
</system.webServer>
</configuration>

Damit wird, unabhängig von der im hostheader eingegebenen Domain, der Datenverkehr auf die HTTPS-Variante umgeleitet.

Wir nutzen dieses Verfahren selbst bei einigen Kunden, die ausschließlich auf SSL-verschlüsselten Webzugriff setzen.