.htaccess; keine Verlängerung erforderlich
Brauche ich etwas .htaccess-code behandelt wird, extensionless-Dateien als PHP-Dateien.
Angenommen, der Besucher Besuche www.mywebsite.com/dir1/dir2/file.name
, wird er zuerst suchen Sie die Datei dir1/dir2/file.name
existiert, und wenn es nicht vorhanden ist, sieht es für dir1/dir2/file.name.php
(also mit .php
- Erweiterung).
Ist möglich, dass in irgendeiner Weise?
MultiViews
ist die einfachste Variante hier. Es fallen nur minimale Verzeichnis Lesen overhead (und bringt noch andere Vorteile), so dass eine genauere RewriteCond/RewriteRule könnte unnötig sein.MultiViews
ermöglicht es, das Verhalten für alle Typen, nicht nur PHP-Dateien. Das könnte unerwünscht sein. Es sei denn, Sie verwendenMultiviewsMatch
als gut.- Das ist es, was ich vorhin mit "einige andere Vorteile". Es kann aktiviert/deaktiviert werden auf einer pro-Verzeichnis Grundlage jedoch, und sogar per FilesMatch iirc.
- Ok, Nein, es ist nur wünschenswert. Aber
index.php
(wenn ichhttp://www.mywebsite.com/
) gibt mir einen Internal Server error jetzt. Was kann ich dagegen tun? - Blick in die
error.log
die Erwähnung des Konflikts / Fehlers Ursache. Sie sollten nicht kombinieren beide Ansätze btw. - Ihre Frage könnte nun besser geeignet sein für Serverfault - flag für den moderator aufsuchen, wenn Sie wollen, dass es verschoben wird. - Ah: Anforderung überschritten die Grenze von 10 internen Umleitungen aufgrund der zu erwartenden Konfigurations-Fehler. Also ich denke, es hat etwas zu tun mit der RewriteCond ich Hinzugefügt (von Andrew).
- Das mag Sinn machen die eigentlich da wenn die Datei nicht gefunden, werde es so halten das hinzufügen
.php
am Ende. Zum Beispielindex.php
wirdindex.php.php
und dannindex.php.php.php
und so weiter und so Fort. @Andrew Moore sollte es mal so umschreiben, dass wenn .php ist bereits am Ende, es nicht halten Sie das hinzufügen (über ein anderesRewriteCond
). - Getan, danke :)!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schreiben Sie ein rewriting-Regel, die dauert nur wirksam, wenn die angeforderte Datei nicht existiert.
Francois Deschenes
Antwort zu./dir/
zu/dir/.php
.Sollten Sie einen Blick auf Apache
Options
Richtlinie, die meisten speziell die http://httpd.apache.org/docs/2.0/content-negotiation.html option, die können Sie in Ihrem.htaccess
- Datei und wird genau das tun.Hinzufügen, um Ihre
.htaccess
:Andrew Moore's
Antwort zusammen arbeitete für mich.index.php
gibt einen Internal Server error jetzt. Was kann ich dagegen tun?Options
Einstellung Ihrer.htaccess
- Datei. Wenn Sie eigene server und können ändern Sie die Apache-Konfigurationsdatei, müssen Sie geben sich selbst die Erlaubnis, versuchen Sie andernfalls, @Andrew Moore ' s Vorschlag mitmod_rewrite
. Zum ändern der Berechtigungen in Ihrer httpd.conf-Datei, die Sie verwenden werdenAllowOverride
und legen Sie es aufAll
oder fügen SieOptions
..htaccess
- Datei. UndAllowOverride
eingestellt istAll
..htaccess
sind in der Regel verursacht durch Fehler (oder fehlende Berechtigungen) in die.htaccess
- Datei. Überprüfen Sie Ihre Fehler.log.Ok, die Antwort war eine Kombination von Antworten. Ich brauchte, um hinzuzufügen
Options +MultiViews
in meiner Apache-Konfiguration. Dann erweitere ichAndrews
Antwort auf die folgenden:Grüße und vielen Dank!
Kevin
Options +MultiViews
gilt aber nur für.php
- Dateien.