Auszuführende Datei: /foo/ausfuehren.php bzw. /bar/ausfuehren.php
Webaufruf /foo/hallo!111
Die /foo/ausfuehren.php bzw. /bar/ausfuehren.php soll nun "hallo!111" ausgeben, aber der Browser soll nach wie vor nur auf /foo/hallo!111 zeigen.
Geht sowas?
Oder anders: wie lautet der Code um eine PHP Datei ohne PHP Endung als PHP auszuführen? Wie sicher ist diese Variante? (z.B. wenn Server neugestartet wird - z.B. wegen Upgrade etc. - ist es möglich, das während des Starts von PHP & seinen Modulen, das Modul für diesen htaccess Vorgang noch nicht geladen ist und der PHP Code als Text dargestellt wird?)
--
«Wir können alles schaffen, wir brauchen nur genug dressierte Affen» - infinite monkey theorem
mod_rewrite, ein Apachemodul kann so etwas (vermute ich^^). Einfach suchen, da gibt es bestimmt zahlreiche Ergebnisse (ich hab damit noch nicht gearbeitet).
Zitat
(z.B. wenn Server neugestartet wird - z.B. wegen Upgrade etc. - ist es möglich, das während des Starts von PHP & seinen Modulen, das Modul für diesen htaccess Vorgang noch nicht geladen ist und der PHP Code als Text dargestellt wird?)
...
Der Server ist in der Regel erst erreichbar, wenn der Server vollständig geladen wurde. Apache läd PHP dann etweder direkt mit oder ruft es auf, wenn es über die CGI-Schnitstelle angesprochen wird.
Mit htaccess kanst du zwar PHP-Module beeinflussen, aber nicht deren Funktionen laden. mod_rewrite ist also pure Apache-Funktionalität.
Alternativ gibts bei PHP $_SERVER['PATH_INFO'], welches alles nach der Dateiendung enthält, wenn darauf ein Slash folgt, aber das suchst du wohl nicht.
Nein, das suche ich nicht - das verwende ich schon ewig.
Ich würde nur gerne die Endung .php "weg machen", da es den SEO-Mythos gibt, das Google *.php/irgendwas schlechter einstufft als eine */irgendwas Adresse.
Zum rewrite: Gut, dann gibt es scheinbar keine andere Möglichkeit - wollte mich davor drücken. :P
--
«Wir können alles schaffen, wir brauchen nur genug dressierte Affen» - infinite monkey theorem
Du könntest mal sowas in deiner .htaccess probieren:
Damit solltest du den String als $_GET['string'] in deiner ausfuehren.php abholen können. Allerdings brauchst du mod_rewrite dafür, wie mitaki bereits sagte. Google doch einfach mal ein bisschen danach, damit kann man so ziemlich alles machen.
Meines Wissens bezieht sich der genannte SEO-Mythos darauf, dass Parameter in der Adresse (?a=b&c=d) sich negativ auswirken, weil dann klar ist, dass die Seite variablen Inhalt enthält.
*.php sagt zwar aus, dass auf dem Server was abläuft, ist aber noch nicht aufschlussreich genug um sagen zu können, der Inhalt sei variabel.
Manni: Dein Vorschlag funktioniert nicht - er gibt nur den Dateinamen (hier return.php) aus.
Aber auf Basis Deiner Variante und ein wenig durchsuchen des Internets bin ich auf folgende (bei mir funktionierende) Lösung gekommen:
/path/to/home ist der Pfad, in welchem die dynamischen Aufrufe erfolgen.
Allerdings - wichtig: Der Ordnerinhalt (sofern erlaubt) wird angezeigt wenn man keinen Parameter für eine Übergabe (/ -> Dateiverzeichniss) hat. Aber - das wisst Ihr ja schon, seid ja alt genug - eine feine index.html mit keinem Inhalt (oder Inhalt) fängt auch diesen Aufruf erfolgreich ab.
Danke Jungs!
--
«Wir können alles schaffen, wir brauchen nur genug dressierte Affen» - infinite monkey theorem