kostenloser Webspace werbefrei: lima-city


Endungen nur von .php entfernen .htacess

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    sidezockinglp

    sidezockinglp hat kostenlosen Webspace.

    Hey,

    Ich stehe gerade echt vor einem Problem und hoffe dass dies hier das richtige Forum ist :)

    Ich möchte eigentlich ganz simpel wenn ich eine Url mit .php Endung eingebe dass die Endung nicht angezeigt wird.

    Folgendes habe ich eingetragen:

    Options +FollowSymlinks
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}.php -f
    RewriteRule ^(.+)$ /$1.php [L,QSA]


    Das Problem, auch .html Endungen werden entfernt, warum?

    Hoffe ihr könnt mir helfen

    LG
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. mein-wunschname

    mein-wunschname hat kostenlosen Webspace.

    Ich hätte in der letzten Zeile
    RewriteRule ^(.*)$ $1.php

    geschrieben.
    Habe zurzeit keine brauchbare Testumgebung, also mal selbst testen.
  4. Autor dieses Themas

    sidezockinglp

    sidezockinglp hat kostenlosen Webspace.

    Hey, habs probiert, gleiches Ergebnis

    Sobald ich test.html eingebe macht mir das Ding test draus
    Gebe ich z.b test.txt ein lässt er es stehen

    ? LG
  5. Wenn ich den Code richtig verstehe, entfernt dieser keine Endungen sondern sorgt dafür, dass PHP-Dateien über URLs ohne Endung überhaupt aufgerufen werden können.

    Das was dir dann die Umleitung macht z.B. von /test.php auf /test müsste anders aussehen.

    Hast du noch andere Anweisungen bezüglich dieser Umleitung in der .htaccess?

    Und was passiert wenn du im Browser ein privates Fenster öffnest? Beobachtest du dann noch den selben Fehler?
  6. h***********r

    RewriteCond %{REQUEST_FILENAME}.php -f
    RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]
  7. Autor dieses Themas

    sidezockinglp

    sidezockinglp hat kostenlosen Webspace.

    @fuerderer
    fuerderer schrieb:
    Wenn ich den Code richtig verstehe, entfernt dieser keine Endungen sondern sorgt dafür, dass PHP-Dateien über URLs ohne Endung überhaupt aufgerufen werden können.


    Leider steig ich da auch nicht so wirklich durch :/

    fuerderer schrieb:

    Hast du noch andere Anweisungen bezüglich dieser Umleitung in der .htaccess?


    Nur das, was ich oben geschrieben habe.
    Problem bleibt auch Privat

    @horstexplorer

    Auch mit deinem Code ändert sich nicht viel

    -Ich gebe eine URL mit .php ein -> das .php wird entfernt
    -ich gebe eine URL ohne Endung ein -> sie wird aufgerufen
    - Ich gebe eine URL mit .html Endung ein -> .html wird entfernt, Fehlermeldung:The requested URL /test was not found on this server.
  8. h***********r

    Der Code war dafür da um über den Filename auf Filename.php zuzugreifen. Das kann man auch doppelt noch mit .html nutzen, sodass du bei Weiterleitungen nicht mehr drauf achten musst welche Dateiendung du nun verwendest. Kann aber Probleme geben wenn .html und .php mit gleichem Namen existieren.

    Die Endung zu entfernen nachdem sie eingegeben wurde, dazu habe ich nichts gefunden.
    Ich vermute daß da ein redirect notwendig ist anstelle eines rewrites. Also das man das beides in Kombination benutzt.

    Ich kucke mal ob ich da was hin bekomme, füge das dann hier ein.

    Beitrag zuletzt geändert: 13.8.2018 15:31:17 von horstexplorer
  9. Autor dieses Themas

    sidezockinglp

    sidezockinglp hat kostenlosen Webspace.

    @horstexplorer Erstmal danke für die Hilfe :)

    Erstmal Update: Habe jetzt auf die html Dateien geschissen und sie auch in php gemacht.

    Hab jetzt folgenden Code um www.test.de/test.php einzugeben und www.test.de/test angezeigt zu bekommen

    RewriteEngine On
    
    # Redirect external .php requests to extensionless url
    RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
    RewriteRule ^(.+)\.php$ $1 [R=301,L]
    # Resolve .php file for extensionless php urls
    RewriteRule ^([^/.]+)$ $1.php [L]


    Jetzt funktioniert das bei manchen Seiten perfekt, bei anderen leitet er mich auf http://example.com/folder/test weiter. Was ist denn jetzt los? Pls kill me :wall:

  10. h***********r

    Oh :D
    Was steht denn noch alles in der Datei drinnen.
    Hatte sowas auch das das für einige Seiten anders war als es in der htaccess stand. Bei mir ging das dem deaktivieren von Multiviews weg.

    Beitrag zuletzt geändert: 13.8.2018 16:16:16 von horstexplorer
  11. Autor dieses Themas

    sidezockinglp

    sidezockinglp hat kostenlosen Webspace.

    horstexplorer schrieb:
    Was steht denn noch alles in der Datei drinnen.


    das ist alles, habe die Datei selbst erstellt. Muss da mehr rein?

    Wie deaktiviert man den Multiviews? geht das auch über die Datei?

    LG
  12. h***********r

    Das müsste

    Option -MultiViews

    in der htaccess am Anfang erledigen können.
  13. Autor dieses Themas

    sidezockinglp

    sidezockinglp hat kostenlosen Webspace.

    horstexplorer schrieb:
    Das müsste

    Option -MultiViews

    in der htaccess am Anfang erledigen können.


    Problem bleibt leider :(

    Options -MultiViews 
    RewriteEngine On
    
    # Resolve .php file for extensionless php urls
    RewriteRule ^([^/.]+)$ $1.php [L]


    LG
  14. h***********r

    Gibt es vielleicht noch mehr htaccess Dateien?
    Schon versucht den Browser Cache zu leeren, vielleicht bringt das etwas.
  15. Autor dieses Themas

    sidezockinglp

    sidezockinglp hat kostenlosen Webspace.

    Puhh :wow:

    horstexplorer schrieb:
    Schon versucht den Browser Cache zu leeren, vielleicht bringt das etwas.


    Ich wusste gar nicht dass das irgend einen Einfluss hat was da im Zwischenspeicher ist :/

    Gut das hat natürlich alle Ergebnisse verfälscht :slant:

    Back to start:

    Options -MultiViews 
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME}.php -f
    RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]


    -> Der Code gibt mir die Möglichkeit eine Seite ohne Extension aufzurufen

    fuerderer schrieb:
    Wenn ich den Code richtig verstehe, entfernt dieser keine Endungen sondern sorgt dafür, dass PHP-Dateien über URLs ohne Endung überhaupt aufgerufen werden können.

    Das was dir dann die Umleitung macht z.B. von /test.php auf /test müsste anders aussehen.


    Doch wie lösche ich das .php aus einer URL, also mache diese Umleitung? Hab dazu nichts funktionierendes gefunden..

    LG
  16. h***********r

    Ich glaube da etwas gefunden zu haben.
    https://stackoverflow.com/questions/18692942/301-redirect-php-to-html-via-htaccess
    Dieser Code leitet von .php auf .html um.
    RewriteCond %{THE_REQUEST} \ /(.+)\.php
    RewriteRule ^ /%1.html [L,R=301]


    Wenn man einfach die Endung nun raus nimmt, sollte der auf nur den Dateinamen weiterleiten.
    RewriteCond %{THE_REQUEST} \ /(.+)\.php
    RewriteRule ^ /%1 [L,R=301]


    Also sieht deine htaccess in etwa so aus:

    Options -MultiViews 
    
    RewriteEngine On
    
    RewriteCond %{REQUEST_FILENAME}.php -f
    RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]
    
    RewriteCond %{THE_REQUEST} \ /(.+)\.php
    RewriteRule ^ /%1 [L,R=301]


    Beitrag zuletzt geändert: 13.8.2018 18:15:02 von horstexplorer
  17. Autor dieses Themas

    sidezockinglp

    sidezockinglp hat kostenlosen Webspace.

    Ok Top geht erstmal,

    werde noch ausführlicher Testen

    Danke dir erstmal für deine Hilfe :)

    So hab ich es:
    Options -MultiViews 
    RewriteEngine On
    
    RewriteCond %{THE_REQUEST} \ /(.+)\/
    RewriteRule ^ /%1.php [L,R=301]
    
    
    RewriteCond %{REQUEST_FILENAME}.php -f
    RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]
  18. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!