Schönere URLs für MediaWiki

Aus schokokeks.org Wiki
Zur Navigation springen Zur Suche springen

PHP kann auf schokokeks.org in zwei Varianten benutzt werden: Als Apache-Modul und als (Fast-)CGI.

Die Apache-Modul-Variante ist üblicherweise die schnellste, kann aber aus Sicherheitsgründen nur mit dem sogenannten safe_mode betrieben werden. Manche Web-Anwendungen benötigen Funktionen, die im safe_mode nicht zur Verfügung stehen. Insbesondere MediaWiki verweigert manche Funktionen (z.B. Bildverarbeitung) wenn es mit der safe_mode-Einstellung betrieben wird.

Allerdings funktioniert die "Pretty URLs"-Einstellung leider nicht mit der CGI-Variante. Wenn man die Einstellungen jedoch verfeinert, dann funktioniert der Betrieb reibungslos.

Man muss unterscheiden, ob man MediaWiki als eigene (Sub-)Domain betreibt oder in einem Unterverzeichnis innerhalb des DocumentRoot.

Eigener DocRoot

Es muss eine Datei .htaccess erzeugt werden, die den folgenden Inhalt hat:

Options FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /index.php?title=$1 [L,QSA]

Dann muss in der Datei LocalSettings.php folgendes geändert werden:

$wgScriptPath      = "";
$wgScript          = "$wgScriptPath";
$wgArticlePath     = "$wgScript/$1";

In einem Unterverzeichnis

Wir nehmen an, dass das Unterverzeichnis /wiki benutzt wird.

Auch hier muss eine Datei .htaccess erzeugt werden:

Options FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /wiki/index.php?title=$1 [L,QSA]

die Datei LocalSettings.php muss auch geringfügig anders geändert werden.

$wgScriptPath      = "/wiki";
$wgScript          = "$wgScriptPath";
$wgArticlePath     = "$wgScript/$1";