htaccess : 404-Pr0blem mit modrewrite

xep22

Banned
Registriert
Apr. 2018
Beiträge
395
moin, habe diese htaccess geschrieben damit ich bei z.b. /3 auf die 3.php komme :

Code:
ErrorDocument 404 /404.php

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ $1.php [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)$ $1.php [L]

doch das problem ist wenn man nach dem / etwas eingibt was es nicht gibt kommt man nicht auf die 404.php sondern man erhält

Code:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

was ist da falsch ?
 
Die Meldung kommt von deinem Webserver. Ohne Infos dazu kann man nicht weiterhelfen mMn
 
achso:

Code:
Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
 
Jo, dann mach das mal und bring ne brauchbare Fehlermeldung
 
Code:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.+)$ $1\.php [L, R=301]

  • Zeile 3 nimmt die Ersetzung nur vor wenn es z.B. 3.php auch tatsächlich gibt.
    Und verhindert damit das die Regel mehrfach angewendet wird, weil 3.php.php wird es ja nicht geben.
  • Was Du in deiner Zeile 4 machst ist mir schleierhaft. Nimm doch den ganzen Filenamen und hänge einfach .php dran wie hier in Zeile 4
  • [R=301] für permanente Weiterleitungen, dann kapiert es auch Google, und indiziert die richtige Datei.
 
Zurück
Oben