Links ohne Dateierweiterung setzen (.php)

Ist es möglich, Apache so zu konfigurieren, dass keine Dateierweiterung angezeigt wird?

Zum Beispiel: Angenommen, ich hättedomain.com/page.php aber haben wollendomain.com/page als die url.

Irgendwelche Ideen?

Antworten auf die Frage(6)

Lösung für das Problem

Dies wird als URL-Umschreiben bezeichnet. Ich musste es vor kurzem zum ersten Mal benutzen und habe es benutztdieses Tutorial Ich hoffe, Sie werden es auch toll finden, um es zu lernen:

Es gibt auchMultiViews als vhost oder .htaccess Konfigurationsoption. Sehenhttp://httpd.apache.org/docs/2.2/content-negotiation.html#multiviews

Von dieser Seite:

MultiViews haben folgende Auswirkungen: Wenn der Server eine Anfrage nach / some / dir / foo erhält, wenn in / some / dir MultiViews aktiviert sind und / some / dir / foo nicht vorhanden ist, liest der Server das gesuchte Verzeichnis Dateien mit dem Namen foo. * und fälschen effektiv eine Typzuordnung, die alle diese Dateien benennt und ihnen dieselben Medientypen und Inhaltscodierungen zuweist, die sie hätten, wenn der Client nach einem von ihnen namentlich gefragt hätte. Es wählt dann die beste Anpassung an die Anforderungen des Kunden.

 Indra Kumar S16. Sept. 2016, 10:46
Ich habe MultiViews zu meinem vhost hinzugefügt, der 2 Tage gelitten hat. Ich konnte nicht herausfinden, warum meine URL für saubere Abrufanfragen nicht funktioniert hat .... Danke @TheGingerDog
 Seth Battin11. Juni 2015, 18:20
Sehr richtig. Mit Vorsicht verwenden.
 David Goodwin11. Juni 2015, 16:17
Multiviews können ziemlich ärgerlich sein und normalen mod_rewrite-Regeln im Wege stehen, wenn sich die Auswahl der Dateinamen und Umschreibemuster überschneidet.
 Scorpius21. Feb. 2018, 19:29
Der Kommentar von @DavidGoodwin und diese Antwort haben wirklich dazu beigetragen, einen besonders unangenehmen und schwer zu verfolgenden Konflikt zwischen Umschreiberegeln und aktivierter MultiViews-Option zu lösen.

Setzen Sie dies ist Ihre .htaccess-Datei

#turn on url rewriting 
RewriteEngine on

#remove the need for .php extention 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php

Auf diese Weise können Sie auf .php-Dateien ohne die Erweiterung zugreifen, sodass Ihre Links gelesen werden sollten

href="/somepage"

und das wird direkt an

href="/somepage.php" 

Setzen Sie dies ist Ihre .htaccess-Datei

RewriteEngine On
RewriteRule ^page?$ page.php

<a href="page">page</a>

Sie möchten eine Webserver-Funktion namens URL-Umschreiben - jede Webserver-Anwendung (Apache, IIS, Nginx) unterstützt dies. Wie der Name schon sagt, nimmt er die angeforderte URL und schreibt sie in ein bestimmtes Format, das Sie definieren.

Es gibt viele Anleitungen im Internet, auch wenn Sie eine gemeinsam genutzte Hosting-Lösung verwenden, können Sie dazu die .htaccess-Datei hinzufügen / ändern.

Das ist wirklich einfach. Erstellen Sie einfach eine .htaccess-Datei und legen Sie sie im Stammverzeichnis ab. Anschließend können Sie die URL für Ihre eigene überschreiben.

Verwenden Sie dieses Handbuch.

Ihre Antwort auf die Frage