Skip to content

WordPress-Blog mit MediaWiki-Wiki in Unterverzeichnis und ShortUrls

Diego Velázquez: Apollo in the Forge of Vulcan Wer sich eine Blog-Software installieren und ein (Media)Wiki in ein Unterverzeichnis packen möchte, stolpert bei der Konfiguration über kleinere Probleme: Je nachdem, wie .htaccess und die LocalSettings.php des MediaWiki konfiguriert sind, schnappen sich beide Anwendungen die Seitenaufrufe weg. Soll heißen: Ruft man das Wiki auf, landet man im Blog auf einer 404-"Seite nicht gefunden"- Seite, ruft man das/den Blog auf, landet man im Wiki. Zwischendurch kommt es immer vor, dass URL Aufrufe zwar auf die ShortURL des Wikis umgeleitet werden, die Blog-Software allerdings versucht, den Seitenaufruf zu bedienen, was wiederum zu einer Fehlermeldung führt. Wie man Herr des Ganzen werden kann, zeige ich im Folgenden:

(Wir gehen davon aus, dass wir als Blog-Software WordPress und als Wiki-Software MediaWiki verwenden.)

Ziel

Ein WordPress-Blog auf einer Domain mydomain.com mit MediaWiki aufrufbar per mydomain.com/wiki.

Wordpress installieren

Die berühmte fünf Minuten-Installation. KwT.

MediaWiki installieren

Das MediaWiki wird in einen Unterordner /w installiert. Wer später ShortURLs der Form /wiki verwenden möchte, darf nicht nach /wiki installieren!!!

Benutzerrechte konfigurieren

Bevor wir weitermachen, sollten wir vielleicht ein paar Benutzerrechte konfigurieren, damit uns niemand in der Zwischenzeit irgendwelche Seiten anlegt oder bearbeitet.

ShortURLs konfigurieren

Zur Konfiguration der /wiki-ShortURL verwenden wir den Redwerks-.htaccess- und -LocalSettings.php-Generator. Redwerks spuckt uns so etwas aus:

.htaccess:

RewriteEngine On
RewriteRule ^/?wiki(/.*)?$ %{DOCUMENT_ROOT}/w/index.php [L]
RewriteRule ^/?$ %{DOCUMENT_ROOT}/w/index.php [L]

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
RewriteRule ^/?w/images/thumb/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ %{DOCUMENT_ROOT}/w/thumb.php?f=$1&width=$2 [L,QSA,B]

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
RewriteRule ^/?w/images/thumb/archive/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ %{DOCUMENT_ROOT}/w/thumb.php?f=$1&width=$2&archived=1 [L,QSA,B]

/w/LocalSettings.php:

## The URL base path to the directory containing the wiki;
## defaults for all runtime URL paths are based off of this.
## For more information on customizing the URLs please see:
## http://www.mediawiki.org/wiki/Manual:Short_URL
$wgScriptPath = "/w";
$wgScriptExtension = ".php";
$wgArticlePath = "/wiki/$1";
$wgUsePathInfo = true;

## To enable image uploads, make sure the 'images' directory
## is writable, then set this to true:
$wgEnableUploads  = true;
$wgGenerateThumbnailOnParse = false;

(Der Eintrag $wgScriptPath = "/w"; ist i. d. R. nach der Installation bereits vorhanden, muss also nicht geändert oder erneut eingetragen werden.)

.htaccess anpassen

Nach der WordPress-Installation sieht unsere .htaccess folgendermaßen aus:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Wir fügen unsere Anpassungen für unser MediaWiki vor den WordPress-Einträgen ein und kommentieren die Zeile

RewriteRule ^/?$ %{DOCUMENT_ROOT}/w/index.php [L]

aus:

# BEGIN MediaWiki
RewriteEngine On
RewriteRule ^/?wiki(/.*)?$ %{DOCUMENT_ROOT}/w/index.php [L]
### RewriteRule ^/?$ %{DOCUMENT_ROOT}/w/index.php [L]

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
RewriteRule ^/?w/images/thumb/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ %{DOCUMENT_ROOT}/w/thumb.php?f=$1&width=$2 [L,QSA,B]

RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
RewriteRule ^/?w/images/thumb/archive/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ %{DOCUMENT_ROOT}/w/thumb.php?f=$1&width=$2&archived=1 [L,QSA,B]

# END MediaWiki

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Anschließend sollte der Blog über mydomain.com und das Wiki über mydomain.com/wiki aufrufbar sein.

Bildnachweis: Diego Velázquez (1599-1660): Apollo in the Forge of Vulcan (1630)

Trackbacks

Keine Trackbacks

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Noch keine Kommentare

Kommentar schreiben

Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
Gravatar, Twitter, Pavatar, Identica, Favatar Autoren-Bilder werden unterstützt.
Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Markdown-Formatierung erlaubt
Formular-Optionen

Kommentare werden erst nach redaktioneller Prüfung freigeschaltet!