Hallo Manni,
- mod_reqrite
- forcetype
- domain.de.php/kontakt/senden
es kann so gar noch schlimmer kommen, dass Dir die letzte Möglichkeit mit der Direktive AcceptPathInfo genommen wird, wenn die anderen Möglichkeiten ausfallen. (Das sei deshalb angemerkt, damit auch dafür in einer etwaigen Programmierung (z. B.) eines setup-scripts weitere Ausweichmöglichkeiten geschaffen werden.)
- Ich möchte eine Art "Schau was dein Server kann" Funktion mit einem PHP-Skript realisieren, dass sich dann jenachdem, was am Server möglich ist der Reihe nach für mod_reqrite, forcetype oder die letzte Lösung ausspricht.
Wie dedlfix schon bemerkte, sieht es bei einem apache-handler (PHP-Modul) noch recht günstig aus herauszufinden, welche Module der Apache bereithält. Nur ist es damit _alleine_ nicht getan. [Link:http://httpd.apache.org/docs/2.2/mod/core.html#allowoverride@title=AllowOverride] kann Dir hier gehörig in die Suppe spucken, sodass die Module zwar verfügbar sind, jedoch nicht konfiguriert werden können. (Das mag nicht nur absurd klingen, denn es ist auch absurd, aber es gibt tatsächlich solche Provider mit solchen restriktiven Konfigurationen, die die Module dennoch einbinden. ^,-) Um mit Deinem "Möglichkeitstest"-script portierbar zu sein und der vorwiegenden Nutzung ebenso gerecht zu werden, solltest Du von vornherein davon ausgehen, dass PHP über (Fast)CGI vom Server angesprochen wird.
Erstelle Dir also ein Script, was ein Verzeichnis innerhalb des Webs erstellt, darin eine Datei (z. B. index.txt, Inhaltsvariante: "<?php phpinfo();?>
) und eine Konfigurationsdatei (.htaccess) ablegt. In der .htaccess legst Du in nacheinander folgenden Testreihen unterschiedliche Konfigurationen ab (1) und greifst via HTTP von selben script darauf zu. Ein Testkonfiguration könne beispielsweise so aussehen:
RewriteEngine on
RewriteRule \.txt$ - [type=application/x-httpd-php]
# bei Fehlschlag nächster Versuch mit
ForceType application/x-httpd-php
Ist mod_rewrite nicht installiert, antwortet der Server mit Status 500. Dies kann mit fopen('http://do.main/m-test.php.dir/index.txt','r') und anschließendem resourcen Test via stream_get_meta_data() überaus komfortabel geprüft werden. Wird die Konfigurationsdatei vom Server gar nicht gelesen, ist die Ausgabe (in meinem Beispiel) "<?php info(); ?>" andernfalls die HTML-formatierte Ausgabe der geparsten index.txt.
Gruß aus Berlin!
eddi
Hypochondrie vor Parodontitis? Nikotin beruhigt die Nerven davon!