Arbeiten mit PATH_INFO aber ohne index-Datei
Tomas
- php
Hallo,
Wie man auf Wikipedia sehen kann, reicht dort die Pfadangabe um zu einem Artikel zu gelangen. Ich weiß, das es mit Hilfe von PHPs $_SERVER['PATH_INFO'] realisiert wird.
Unklar bleibt mir jedoch, wie sie es geschafft haben, dies ohne eine index.php zu realisieren, da ich gehört habe, dass kein Mod_Rewrite verwendet wird.
Wie bekomme ich es also hin, selbst nur mit Pfadangaben zum Ziel zu kommen?
Statt:
www.example.com/index.php/Startseite/
Etwa:
www.example.com/firmaXy/Startseite/
gruß, Tomas
Kann sein das ich total daneben liege, aber vielleicht indem "index.php" das Standartdokument ist?
Hallo,
Kann sein das ich total daneben liege, aber vielleicht indem "index.php" das Standartdokument ist?
Ich weiß nicht was du unter Standarddokument verstehst.
index.php ist in der Apache Konfigurationsdatei unter DirectoryIndex eingetragen.
gruß, Tomas
Hallo Tomas,
Wie man auf Wikipedia sehen kann, reicht dort die Pfadangabe um zu einem Artikel zu gelangen. Ich weiß, das es mit Hilfe von PHPs $_SERVER['PATH_INFO'] realisiert wird.
Unklar bleibt mir jedoch, wie sie es geschafft haben, dies ohne eine index.php zu realisieren, da ich gehört habe, dass kein Mod_Rewrite verwendet wird.
das kannst du unter http://meta.wikimedia.org/wiki/Rewrite_rules nachlesen.
Gruß Gunther
echo $begrüßung;
Wie man auf Wikipedia sehen kann, reicht dort die Pfadangabe um zu einem Artikel zu gelangen. Ich weiß, das es mit Hilfe von PHPs $_SERVER['PATH_INFO'] realisiert wird.
Unklar bleibt mir jedoch, wie sie es geschafft haben, dies ohne eine index.php zu realisieren, da ich gehört habe, dass kein Mod_Rewrite verwendet wird.
Was in den Wikipedia-URLs auffällt, ist der immer gleiche Teil "wiki". Dieser wäre im Prinzip nicht nötig. Meine Vermutung ist, dass dieser jedoch technisch nötig ist, um einen Alias greifen zu lassen.
Kleiner Test:
Alias /phpinfo /pfad/zum/document_root/phpinfo.php
Ein Aufruf von example.com/phpinfo zeigt die PHP-Informationsseite an.
example.com/phpinfo/pathinfo zeigt sie auch an, und $_SERVER['PATH_INFO'] ist mit /pathinfo belegt.
Wie bekomme ich es also hin, selbst nur mit Pfadangaben zum Ziel zu kommen?
Ansonsten fällt mir nur noch mod_rewrite ein, womit man ohne den bei Alias nötigen URL-Teil auskommt.
# wenn Verzeichnis nicht existiert
RewriteCond %{REQUEST_FILENAME} !-d
# wenn Datei nicht existiert
RewriteCond %{REQUEST_FILENAME} !-f
# leite alles auf die index.php um, und hänge den Querystring wieder an.
RewriteRule (.*) index.php [L,QSA]
echo "$verabschiedung $name";
Hallo,
RewriteCond %{REQUEST_FILENAME} !-d
wenn Datei nicht existiert
RewriteCond %{REQUEST_FILENAME} !-f
leite alles auf die index.php um, und hänge den Querystring wieder an.
RewriteRule (.*) index.php [L,QSA]
Danke, ich werde mich wohl mehr mit Mod\_Rewrite außeinandersetzen müssen.
Gruß, Tomas
hi,
Was in den Wikipedia-URLs auffällt, ist der immer gleiche Teil "wiki". Dieser wäre im Prinzip nicht nötig.
Doch, wenn man PATH_INFO verwenden will, muss der Apache zumindest auf einen Teil der Adresse "physisch" zugreifen können.
Du kannst http://example.com/index.php/blubb verwenden - weil der Apache unter index.php eine Scriptdatei findet, und dieser dann den Rest des Request-URI als PATH_INFO übergeben kann.
http://example.com/blubb geht aber nicht (wenn keine Datei/Verzeichnis blubb existiert) - der Apache findet nichts, was er als Ziel dieser Anfrage ausmachen könnte.
Meine Vermutung ist, dass dieser jedoch technisch nötig ist, um einen Alias greifen zu lassen.
Genau.
Es muss aber kein Alias sein - es reicht genauso aus, wenn die Scriptdatei, um dem Wikipedia-Beispiel zu bleiben, den Namen wiki trägt, ohne irgendeine Dateiendung. Dann muss man ihm nur noch sagen, dass er diese Datei durch den PHP-Parser schicken soll - beispielsweise per <Files>-Direktive und ForceType.
Wenn es aber ohne so ein "Präfix" im URL funktionieren soll - dann muss halt doch mod_rewrite o.ä. ran.
gruß,
wahsaga
echo $begrüßung;
Was in den Wikipedia-URLs auffällt, ist der immer gleiche Teil "wiki". Dieser wäre im Prinzip nicht nötig.
Doch, wenn man PATH_INFO verwenden will, muss der Apache zumindest auf einen Teil der Adresse "physisch" zugreifen können.
Ich hab mich da nicht klar auszudrücken vermocht, und du hast mich da nicht richtig verstanden. Dass dieser Teil aufgrund der verwendeten technischen Lösung enthalten ist, steht auf einem anderen Blatt. Dazu kam ich ja in meinen weiteren Ausführungen. Weitere (sinnvolle) Gründe sehe ich jedoch nicht, also ist dieser Teil im Prinzip verzichtbar.
echo "$verabschiedung $name";
hi,
Weitere (sinnvolle) Gründe sehe ich jedoch nicht, also ist dieser Teil im Prinzip verzichtbar.
Allgemein ja, aber bei Verwendung von PATH_INFO eben nicht.
gruß,
wahsaga
Hallo dedlfix,
Was in den Wikipedia-URLs auffällt, ist der immer gleiche Teil "wiki". Dieser wäre im Prinzip nicht nötig. Meine Vermutung ist, dass dieser jedoch technisch nötig ist, um einen Alias greifen zu lassen.
Es ist tatsächlich möglich, auf diesen Teil zu verzichten: http://meta.wikimedia.org/wiki/Using_a_very_short_URL. Zumindest eine der dort angegebenen Möglichkeiten entspricht im Prinzip deinem Vorschlag.
Schöne Grüße,
Johannes