Wie kann eine URL wie http: //localhost/index.php/articles/edit/1/my-first-article Arbeit ohne .htaccess?

StackOverflow https://stackoverflow.com/questions/966916

Frage

ich das nicht bekommen:

http: //localhost/index.php/articles/edit / 1 / my-first-Artikel

Diese URL wird als Beispiel erwähnt in der Kohana Rahmen Dokumentation . Ich stieß in den Akten meiner Installation herum, und es gibt keine .htaccess neben meinem eigenen, die nichts damit zu tun hat.

Also, wie kann es sein, dass ein index.php genannt wird, aber dann, als Parameter, sehen die Dinge wie hinzugefügt Verzeichnisse an die URL? Das sieht nicht „real“.

Oder ist dies nur, wie nativen PHP / Apache / HTTP Sachen tatsächlich funktioniert? Wie ich es verstehe, / sagt immer: „Hey, ein Verzeichnis“. Macht wirklich null Sinn für mich ... wie ist das möglich? Oder haben sie irgendwo eine .htaccess haben, dass ich einfach nicht sehen / finden?

War es hilfreich?

Lösung

In PHP können Sie die Daten nach dem Dateinamen erhalten mit dem $_SERVER["PATH_INFO"] Variable. Auf diese Weise können Sie im Grunde Informationen erhalten, ohne GET-Variablen zu verwenden, was bedeutet, Google und Co werden denken, Sie statische Seiten verwenden. Dies ist im Grunde eine Alternative mod_rewrite die oft aktiviert, während mod_rewrite öfter nicht aktiviert ist.

Dies können Sie klar sein, aber es ist mir nicht sofort, das funktioniert nicht richtig auf Indexseiten, wenn Sie die Dateinamen verwenden. Zum Beispiel http://example.com/test/my/get/params wird nicht funktionieren, während http://example.com/test/index.php/my/get/params Willen.

Andere Tipps

Von der Apache docs :

  

AcceptPathInfo Richtlinie

     

Diese Direktive steuert, ob   Anfragen, die nachlauf enthalten   Pfadname Informationen, die ein folgt   tatsächliche Dateinamen (oder nicht vorhandene Datei   in einem bestehenden Verzeichnis) wird   angenommen oder abgelehnt. der hintere   Pfadangaben gemacht werden können   zur Verfügung, um Skripts in der PATH_INFO   Umgebungsvariable.

     

Zum Beispiel übernimmt die Lage   / Test / Punkte in einem Verzeichnis,   enthält nur die einzelne Datei   here.html. Dann fordert für   /test/here.html/more und   /test/nothere.html/more beides   / Mehr als PATH_INFO.

Also gehe ich davon aus dieser Einstellung wie in httpd.conf irgendwo aktiviert ist. Beachten Sie, dass diese, wie mod_rewrite können in einer Reihe von Orten aktiviert / konfiguriert werden - siehe hier .

AcceptPathInfo wird für den Server eingeschaltet. :)

Ich bin nicht mit Kohana, so dass ich weiß nicht, ob meine Methode von Nutzen sein wird, aber wenn ein Server nicht .htaccess-Dateien (oder Rewrite-Regeln) mein ‚Rahmen‘ erzeugt URI wie folgt unterstützt:

http://www.domain.com/? / articles / edit / 1 / my-first-Artikel (man beachte das?)

Es ist ein ähnliches Verfahren durch den Frosch-Framework verwendet, analysiert nur $_SERVER['REQUEST_URI'] (oder $_SERVER['HTTP-X-REWRITE-URL'] auf Windows-Servern) und explodiert auf dem ‚/‘.

Diese Methode ist völlig neu schreiben unabhängig und erzeugt noch mehr oder weniger SEO freundliche URI

Hoffe, es ist von Nutzen für Sie.

Wahrscheinlich hier nicht der Fall, und schon gar nicht zu empfehlen, und wahrscheinlich nicht die richtige Antwort ...

...

Ich habe Leute nutzen 404 Seiten gesehen, die Anforderung zu analysieren und dann schließen die rechte Seite mit diesen Informationen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top