.PHP Datei direkt aufrufen

Hallo zusammen,

meine zukünftige Webseite (derzeit noch im Beta Stadium) besteht aus ca. 7 Unterseiten “unterseite.PHP” die direkt im Heimverzeichnis des Webspace liegen. Um diese Dateien aufzurufen muss man derzeit folgendes eingeben:

webspace.bplaced.net/unterseite.php

Ich würde jedoch gerne nur folgendes eingeben müssen:
webspace.bplaced.net/unterseite

Also die .PHP Dateiendung in der Eingabezeile weglassen. Weiß jemand von euch, wie das möglich ist? Gruß, Fabian

Das machst du am besten mit 'ner .htaccess via mod_rewrite, du schreibst […]/unterseite dann intern auf […]/unterseite.php um :slight_smile:

Danke, das habe ich bereits befürchtetet… Habe mich soeben ein wenig umgeschaut, bis jetzt aber noch keinen funktionierenden htacces-Syntax zusammenbekommen. Hattäst du mir da vielleicht einen konkreten Syntax?

Danke schon mal für die Hilfe :wink:

Bin mir selbst nicht sicher, mag .htaccess nicht so, probier aber mal das:

RewriteEngine On RewriteRule ^(.*)$ $1.php [L,NC,QSA]

Das funktioniert leider nicht, ich bekomme einen Server-Error…
Ich habe es mit folgendem hinbekommen:

RewriteEngine on RewriteRule tutorials$ tutorials.php
Das leitet natürlich nur eine einzige Unterseite, nämlich /tutorials auf /tutorials.php um…
So ganz optimal ist das noch nicht, ich soche noch nach einer allgemeinen Lösung

So was in die Richtung:

RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !\.php$ [NC] RewriteRule ^(.*)$ $1.php [L]

Vielen Dank progandy!
Ich habe zwar nichts davon verstanden, aber es funktioniert :wink:

Gruß, Fabian

[quote=“fabiansebastian”]Vielen Dank progandy!
Ich habe zwar nichts davon verstanden, aber es funktioniert :wink:

Gruß, Fabian[/quote]
Ich erkläre es dann mal:

[code]# RewriteEnginge anschalten
RewriteEngine on

nächste RewriteRule gilt nur, wenn die Datei nicht existiert

RewriteCond %{REQUEST_FILENAME} !-f

nächste RewriteRule gilt nur, wenn es auch kein Ordner ist

RewriteCond %{REQUEST_FILENAME} !-d

nächste RewriteRule gilt nur, wenn die Anfrage nicht auf .php endet.

[NC] -> Groß-Kleinschreibung egal.

RewriteCond %{REQUEST_URI} !.php$ [NC]

Hänge .php an den Dateinamen an.

[L] -> Führe keine eventuell folgenden RewriteRules aus

RewriteRule ^(.*)$ $1.php [L][/code]

Danke für die Erklärung, jetzt habe auch ich das verstanden! Wenn ich also möchte dass die Datei portfolio.php bei der Eingabe domain.de/portfolio geöffnet wird, obwohl der Ordner “Portfolio” noch vorhanden ist, dann lösche ich diese Zeile aus dem Code:

Thx noachmal :wink:

Ich bins nochmal und wieder mal auf der Suche nach einer kleinen Verbesserung am htacces-Code. Bis jetzt sieht das so aus:

[code]RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.php$ [NC]
RewriteRule ^(.*)$ $1.php [L]

ErrorDocument 402 /error
ErrorDocument 403 /error
ErrorDocument 404 /error[/code]

Damit läuft domain.de/seite wunderbar, auch domain.de/ornder/seite, sobald aber ein “/” am Ende einggeben wird (bsp.: domain.de/seite/) komme ich auf die festgelegte Error-Seite.

Was müsste ich ändern, um auch noch die “/” Slashs am Ende abzufangen?
Danke schon einmal und Gruß, Fabian

Probier’s damit, einen optionalen Slash ans Ende des Suchmusters mit aufzunehmen:

[quote=“chrisb”]Probier’s damit, einen optionalen Slash ans Ende des Suchmusters mit aufzunehmen:

Funktioniert leider nicht, auch hier funktioniert es nur ohne den Slash am Ende. Bei domain.de/seite/ lande ich wieder auf meiner error-page…

Andere vorschläge?
Rein logisch müsste man das slash-Zeichen vor der aktuellen befehl-Ausführung eigentlich nur löschen, sollte es vorhanden sein. Wie das mit htacces funktioniert weiß ich leider nicht.