2013-08-02 12 views
14

Ist es möglich, Apache zu konfigurieren, um keine Dateiendung anzuzeigen?Links ohne Dateierweiterung setzen (.php)

Zum Beispiel: Sagen Sie, ich habe domain.com/page.php, aber wollen domain.com/page als die URL haben.

Irgendwelche Ideen?

+1

Dank an alle !! – Braggae

+0

@Braggae Sie sind herzlich willkommen, * Prost *. –

Antwort

3

Dies wird URL-Rewriting genannt. Ich musste es zum ersten Mal vor kurzem verwenden und ich habe this tutorial, um es zu lernen, hoffe, Sie finden es auch toll:

2

Das ist wirklich einfach. Erstellen Sie einfach .htaccess Datei, und legen Sie es in den Stammordner, dann können Sie URL zu Ihrem eigenen überschreiben.

Use this manual.

2

Sie wollen eine Web-Server-Funktion namens URL Rewriting - jede Web-Server-Anwendung (Apache, IIS, nginx) unterstützt dies. Wie der Name schon sagt, benötigt es die angeforderte URL und schreibt sie in ein von Ihnen definiertes Format um.

Es gibt viele Anleitungen auf dem www, auch wenn Sie Shared Hosting-Lösung verwenden, können Sie die .htaccess-Datei hinzufügen/ändern, um dies zu tun.

28

Put ist dies 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 

Diese Sie .php Dateien ohne die Erweiterung zugreifen können, so sollten Sie Ihre Links

href="/somepage" 

lesen und diese zu

leiten wird
href="/somepage.php" 
14

Es gibt auch MultiViews als vhost oder .htaccess Konfigurationsoption. Siehe http://httpd.apache.org/docs/2.2/content-negotiation.html#multiviews

Von dieser Seite:

Die Wirkung von Multiview ist wie folgt: Wenn der Server eine Anfrage für/some/dir/foo, wenn/some/dir hat Multiview Option aktiviert ist, und/some/dir/foo existiert nicht, dann liest der Server das Verzeichnis nach Dateien mit dem Namen foo. * und fabriziert tatsächlich eine Typenkarte, die all diese Dateien benennt und ihnen die gleichen Medientypen und Inhaltscodierungen zuweist, die sie haben würde Kunde hatte nach einem von ihnen mit Namen gefragt. Es wählt dann die beste Übereinstimmung mit den Anforderungen des Kunden.

+3

Multiviews können ziemlich nervig sein und normalen mod_rewrite-Regeln im Wege stehen, wenn sich die Auswahl von Dateinamen und Umschreibungsmustern überschneidet. –

+0

Sehr wahr. Verwenden Sie mit Vorsicht. –

+1

Ich habe MultiViews in meinem vhost für 2 Tage gelitten. Ich konnte nicht herausfinden, warum meine saubere Anfrage-URL nicht funktionierte ....Danke @TheGingerDog –

1

Setzen Sie dieses ist Ihre .htaccess-Datei

RewriteEngine On 
 
RewriteRule ^page?$ page.php

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