Ich habe diese .htaccess-Datei:
Options -Indexes
RewriteEngine on
ErrorDocument 404 /404.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^/]*)/?(.*)$ ./$1.php
RewriteCond %{THE_REQUEST} \.php
RewriteRule ^(.*)$ - [L,R=404]
Wenn ich jedoch zu localhost/example.php
gehe, wird ein 500-Server-Serverfehler ausgegeben.
Hilfe bitte? Vielen Dank.
BEARBEITEN:
Die vollständige Fehlermeldung lautet:
Not Found
The requested URL /example.php was not found on this server.
Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
Sie erhalten höchstwahrscheinlich 500 aufgrund eines Schleifenfehlers.
404.php
von der letzten Regel ausschließen als:
ErrorDocument 404 /404.php
Options -Indexes -MultiViews
RewriteEngine on
RewriteCond %{THE_REQUEST} \.php [NC]
RewriteRule ^(?!404\.php)$ - [L,NC,R=404]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^/]+)/?(.*)$ ./$1.php [L]
ist 404.php tatsächlich im Stammverzeichnis Ihres Dateisystems enthalten?
Ich vermute nicht.
Versuchen Sie etwas wie ../404.php
BTW: Haben Sie in Ihren Apache-Protokolldateien nachgesehen?
Da Sie die .php-Erweiterung auf Ihren Seiten ausblenden möchten, versuchen Sie, diese Erweiterung aus der .htaccess-Datei zu entfernen, indem Sie folgendermaßen vorgehen:
Änderung: ErrorDocument 404/404.php in ErrorDocument 404/404
Hoffe das hilft.
JJ