• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] .htaccess PHP-Endung ausblenden

J

j-l-n

Guest
Ich hab vergessen wie das geht: Bei einem alten Projekt hab ich es so eingestellt gehabt, dass in der URL bei PHP-Seiten die .php-Endung ausgeblendet wurde. Also z.B. example.tld/Pfad/Datei anstatt example.tld/Pfad/Datei.php. Weiß jemand zufällig, wie das geht? Wichtig: Ich möchte nicht "nur", dass man mittels Rewrite auch ohne die PHP-Endung zur richtigen Datei kommt, sondern dass ich auch wenn ich Datei.PHP eintippe, in der URL "Datei" ohne das .PHP sehe...
 
Klappt das:
PHP:
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f

RewriteRule ^(.*)$ $1.php
 
Das entfernt doch aber nicht die ".php"-Endung, wenn sie vorhanden ist, oder?

Dafür bräuchte man doch einen redirect...
 
Ähm ok ...
Weiß gar nicht wie ich drauf gekommen bin.
Sollte vor dem Posten erstmal ausprobieren ...

Edit
Mist, fabriziere ständig Serverfehler.
Hab irgendwie einen Denkfehler ...
Oder der heutige produktive Geist ist schon etwas vernebelt ;)

Am Simpelsten wäre es natürlich, wenn Du für jeden Punkt einen Ordner mit dessen Namen anlegst und da eine index reinpackst ...
 
Zuletzt bearbeitet:
Das ist relativ einfach...

Stichwort Mode-Rewirte

.htaccess
PHP:
Options +FollowSymLinks
RewriteEngine on

RewriteRule irgendeinedatei/(.*)-(.*)$                      irgendeinedatei.php?$1=$2

Erklärung:

Du musst bei dieser Variante für JEDEN Parameter der erwartet wird ein ?$1=$2 anhängen, wie gehabt eben. In der Rewrited (steht auf der linken Seite ;)) steht jedes /(.*)-(.*)/ für den ersten Paramater. Du kannst sie so wie ich trennen oder Du trennst sie so: /(.*)/(.*)/.

Wichtig dabei ist, dass das Ende der Datei /$ so oder so $ aussehen muss. Letzteres ist sicherer da die Datei hier weiß, dass kein weiterer Parameter folgen darf!

so würde aus irgendeinedatei.php?artikelid=12 -> irgendeinedatei/artikelid-12 werden.

sollte ein weiterer Parameter übergebenwerden schreibst Du irgendeinedatei.php?$1=$2&$3=$4 und auf der anderes Seite irgendeinedatei/(.*)-(.*)/(.*)-(.*)$ so würde aus irgendeinedatei.php?artikelid=12&autor=admin -> irgendeinedatei/artikelid-12/autor-admin werden.
 
Danke dertypdernixkan :)
 
Zuletzt bearbeitet von einem Moderator:
Zurück
Oben