Martin Balser: Short-URL für Mediawiki

Beitrag lesen

Hallo Frank,

vielen vielen Dank für Deine eingehenden Erläuterungen. Das Problem scheint sich auf die Zugriffsrechte (403-Fehler) zu verdichten.

Ich kann das auch nur schlussfolgern aus der Anleitung, die du in deinem
ersten Posting verlinkt hast, weil ich das noch nicht gemacht habe.

In LocalSettings.php werden offenbar die URLs auf deinem Server eingetragen,
unter denen die benoetigten Dateien zu finden sind. Das heisst, wenn du dort
zum Beispiel $wgScriptPath = "/w"; eintraegst, dann werden in den erstellten
Seiten Skripte mit sowas wie /w/index.php?... verlinkt.

Ja, das komische ist nur: Ein Ordner /w existiert bei mir genausowenig, wie bei in dem Beispielfall auf der Discussion-Seite (zu dem Link), dennoch wird dieser Ordnername ständig verwendet. Irgendwo hieß es, daß die Wikipedia diesen Ordner ebenfalls verwenden würde; da er nicht in der URL vorkommt, muß man annehmen, daß damit der reale, physische Ordner gemeint ist. Also habe ich überall dort, wo in den Beispielfällen von /w die Rede ist, meinen realen /mediawiki-Ordner angegeben - funzt dennoch nicht.

Von der Apache-Konfiguration ist dann abhaengig, wo diese index.php
tatsaechlich zu finden ist. Der Webserver bildet ja angefragte URLs auf
irgendwelche Dateien auf deiner Festplatte ab. Im Normalfall wuerde Apache
bei einer Anfrage nach /w/index.php dann im Verzeichnis $DocumentRoot/w/
nach der Datei index.php suchen. Weil aber fuer diese URL ein Alias angelegt
wurde (Alias /w/index.php /path/to/your/MediaWiki/installation/index.php),
sucht er in Wirklichkeit in dem angegebenen Verzeichnis nach der Datei.

Leider verraetst du auch nicht, was bei deinen Versuchen nicht funktioniert
hat.

Je nach Konfigurationsversuch heißt es 404 oder 403. Im 403-Fall frage ich mich, wie ich die Zugriffsrechte auf meiner heimischen Festplatte definieren soll!?

Und noch eine grundsätzliche, ZWEITE Frage: Die Artikel werden ja
mittels PHP erstellt und existieren nicht als physisches Objekt, können
doch also ohnehin nicht im selben Ordner wie irgendetwas anderes sein,
schon gar nicht files, denn die gibt es ja auch nicht, sondern nur das
Data-File der MySQL-Datenbank. Aber selbst wenn nur die virtuellen
"Files" (= Artikel) gemeint wären: Wie sollen sich diese überlappen
können, sie werden doch immer verschieden adressiert?

Damit sollen wohl Kollisionen bei der Abbildung von URL auf lokale Datei-
strukturen verhindert werden. Angenommen in deinem /wiki-Verzeichnis liegt
eine Datei script.php; zusaetzlich existiert ein Artikel namens script.php.
Versucht nun jemand auf die URL /wiki/script.php zuzugreifen, dann ist nach
obiger Anleitung der Zugriff mehrdeutig, weil einerseits die reale Datei
script.php gemeint sein kann, andererseits auch der Artikel script.php
(d.h. die Umleitung auf /w/index.php/script.php).

Das klingt soweit plausibel, doch welche Ordner soll ich dann trennen, wenn es ja gar keinen Artikel-Ordner gibt? Bzw.: vor diesem Short-URL-Versuch hatte ich ja auch die vorgegebene Ordnerstruktur verwandt, und alles hat funktioniert, wieso können Kollisionen da nicht entstehen?

Zusammengefaßt, was muß ich hier anpassen? Bei den folgenden Einstellungen erhalte ich eine 403, sowohl bei Aufruf von http://localhost/xyz/index.php/Hauptseite als auch von http://localhost/xyz/Hauptseite

(C:/XAMPP/xyz/ als Wiki-Ordner und z. B. localhost/xyz/Hauptseite als Ausgabeordner)

LocalSettings.php:
$wgScriptPath       = "/mediawiki";
$wgScriptExtension  = ".php";

$wgScript           = "$wgScriptPath/index.php";
$wgArticlePath      = "/xyz/$1";

httpd.conf:
Alias /xyz/index.php C:/XAMPP/mediawiki/index.php
Alias /xyz C:/XAMPP/mediawiki/index.php
Alias /xyz/ C:/XAMPP/mediawiki/
Alias /index.php C:/XAMPP/mediawiki/index.php
Alias /xyz/images/ /wiki/images/
Alias /kyz/skins/ /wiki/skins/

Nochmals allerbesten Dank und einen schönen Sonntagabend
Marba