2 Stimmen

Standardmäßige PHP-Erweiterung auf dem Webserver

Gibt es eine Möglichkeit, eine .htaccess-Datei so zu schreiben, dass

http://www.mysite.com/about 

lädt about.php

und das Gleiche gilt für jede Datei?

Ich habe versucht

RewriteEngine On
RewriteRule ^([0-9A-Za-z]+)$ $1.php

aber es scheint nicht zu funktionieren.

3voto

LazyOne Punkte 149905

Dies ist die häufigste Regel (unter Verwendung von mod_rewrite -- sicherstellen, dass es geladen und aktiviert ist ) -- es stellt sicher, dass eine solche .php-Datei existiert, bevor sie neu geschrieben wird (ja, es ist etwas langsamer, aber sicherer):

Options +FollowSymLinks
RewriteEngine On

# add .php file extension
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.+)$ $1.php [L]

Alternativ können Sie auch dies verwenden:

Options +MultiViews

Dadurch wird die "Inhaltsverhandlung" eingeschaltet. Aber es hat einige Nachteile.

Zum Beispiel: Nehmen wir an, Sie haben hello.html & hello.php im Root-Ordner Ihrer Website. Wenn Sie anfordern example.com/hello Wenn diese Option aktiviert ist, sucht der Apache nach alternativen Namen (gleicher Name, aber unterschiedliche Erweiterungen) und liefert entweder hello.html o hello.php (Ich kann nicht sagen, welche davon bevorzugt wird).

Wenn Sie aber nur 1 Datei mit einem solchen eindeutigen Namen haben (z. B. hello.php NUR), dann gibt es hier überhaupt keine Probleme.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X