Rewrite und PHP

- webserver
-2 xblax0 Sancho0 eddi
Hello out there!
Ich mache eine Weiterleitung
RewriteEngine On
RewriteRule foo foo.php5
Die Weiterleitung funktioniert auch, allerdings wird beim Aufruf von 'http://example.net/foo' nicht PHP ausgeführt. Was muss ich noch tun?
(Beim Aufruf von 'http://example.net/foo.php5' wird PHP ausgeführt.)
See ya up the road,
Gunnar
Hello out there!
Ich mache eine Weiterleitung
RewriteEngine On
RewriteRule foo foo.php5
>
> Die Weiterleitung funktioniert auch, allerdings wird beim Aufruf von 'http://example.net/foo' nicht PHP ausgeführt. Was muss ich noch tun?
>
> (Beim Aufruf von 'http://example.net/foo.php5' wird PHP ausgeführt.)
>
> See ya up the road,
> Gunnar
Falls PHP als CGI läuft, muss noch der passende MIME-Typ angegeben werden:
AddType application/x-cgi-php .php5
Hello out there!
Auf den Hinweis
(Beim Aufruf von 'http://example.net/foo.php5' wird PHP ausgeführt.)
ist das wohl unpassend:
Falls PHP als CGI läuft, muss noch der passende MIME-Typ angegeben werden:
AddType application/x-cgi-php .php5
See ya up the road,
Gunnar
Hi,
[...] allerdings wird beim Aufruf von 'http://example.net/foo' nicht PHP ausgeführt.
Sprich: Du bekommst stattdessen den PHP-Quelltext von foo.php5 geliefert?
Das dürfte, soweit ich deine Angaben übersehe, _eigentlich_ nicht passieren...
Nur sicherheitshalber und um das Glaskugel-Zerrbild etwas schärfer zu machen:
Hast du schonmal
RewriteRule bar.php5 foo.php5
ausprobiert und dann
http://example.net/bar.php5
aufgerufen?
Und - vielleicht folgendes noch - da du ja Beispielnamen angegeben hast:
Enthält die reale URL / der reale PHP-Dateiname noch einen Verzeichnispfad?
(Weil dann ggf. noch die entsprechende RewriteBase angegeben werden müsste.)
Gruß,
Sancho
Hello out there!
Sprich: Du bekommst stattdessen den PHP-Quelltext von foo.php5 geliefert?
Genau so _war’s_.
Das dürfte, soweit ich deine Angaben übersehe, _eigentlich_ nicht passieren...
Du konntest nicht übersehen, was ich _nicht_ angegeben hatte ...
Nur sicherheitshalber und um das Glaskugel-Zerrbild etwas schärfer zu machen:
Glaskugel? Zerrbild?? ;-)
Hast du schonmal
RewriteRule bar.php5 foo.php5
ausprobiert und dann
http://example.net/bar.php5
aufgerufen?
Ging.
RewriteRule bar.quz foo.php5
⇒ http://example.net/bar.quz ging auch. Hm ...
RewriteRule bar foo.php5
⇒ http://example.net/bar ging auch. Huch??
Nun dämmerte es mir. Ich hab Options +MultiViews
gesetzt. Und das hat wohl Vorrang vor einer RewriteRule.
Und MultiViews beißt sich auf diesem Server mit der Ausfährung von PHP (mein Thread Multiviews und PHP). Deshalb ja auch die Weiterleitung.
MultiViews ausgeschaltet:
<Files foo*>
Options -MultiViews
</Files>
RewriteEngine On
RewriteRule foo foo.php5
und schon geht’s.
Danke, irgendwie hat mir dein Posting den nötigen Schubs gegeben, in die richtige Richtung zu denken.
See ya up the road,
Gunnar
Hi,
Glaskugel? Zerrbild?? ;-)
Der Hinweis auf MultiViews und den thread war genau das, was ich nicht übersah (im Sinne von 'überschaute') - daher erschien mir deine Beschreibung eines trotz richtig gesetzter Direktiven unerwartet funktionierenden Apache-rewrite-Moduls als ein Glaskugel-Zerrbild ;)
Umso mehr freuts mich, dass der 'Wurf ins Blaue' helfen konnte.
Einen angenehmen Abend noch,
Sancho
echo $begrüßung;
Danke, irgendwie hat mir dein Posting den nötigen Schubs gegeben, in die richtige Richtung zu denken.
Vielleicht noch ein Schubs für die Zukunft: mod_rewrite kennt auch die Anweisungen RewriteLog und RewriteLogLevel. Damit wird es veranlasst, jeden Berechnungsschritt zu dokumentieren. Allerdings können diese Anweisungen nur in der globalen Server-Konfiguration oder in der Konfiguration virtueller Hosts gesetzt werden.
Den Provider-Server wird man nicht umkonfigurieren dürfen, aber man kann ja das Problem mit einem gleich konfigurierten Labor-Server nachzubilden versuchen.
Ach ja, die Log-Einträge sind nicht unbedingt einfach zu lesen, und man kommt damit nicht nur dem Fehler auf die Spur, man erkennt möglicherweise auch noch, welchen Aufwand mod_rewrite betreiben muss, um solch eine Umschreiberei durchzuführen.
echo "$verabschiedung $name";
Hallo,
was sagt der Provider durch Support/in den FAQs dazu?
Kannst Du vielleicht eine Methode ohne mod_rewrite nutzen, wie http://de.wikibooks.org/wiki/Websiteentwicklung:_PHP:_Konfiguration#Pseudo-URLs_durch_PATH_INFO?
Gruß aus Berlin!
eddi