2016-07-29 24 views
1

Ich habe ein Projekt zur Hand, aber es ist ein Fehler aufgetreten.404 Fehler wird nicht angezeigt, wie es sein sollte

Ich habe RewriteRule zum Umleiten index.php?view=$1 zu /. Wenn ich jedoch auf eine URL zugreife, die zu einem 404-Fehler führen soll, wird stattdessen die Homepage (index.php) angezeigt.

ErrorDocument 404 /pages/errors/error_redirect.php 
ErrorDocument 500 /pages/errors/error_redirect.php 

Options +FollowSymlinks 
RewriteEngine On 
RewriteBase/

<FilesMatch "\.tpl$"> 
    Order Allow,Deny 
    Deny from all 
</FilesMatch> 

RewriteCond %{REQUEST_URI} ^/404/$ 
RewriteRule ^(.*)$ /pages/errors/404.php [L] 

RewriteCond %{REQUEST_URI} ^/500/$ 
RewriteRule ^(.*)$ /pages/errors/500.php [L] 

RewriteCond %{REQUEST_FILENAME} !-l 

# Rewrite all URLs to non-extension URLs 
RewriteRule ^(admin|user)($|/) - [L] 
RewriteRule ^([A-Za-z0-9-_]+)$ /index.php?view=$1 [L] 

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

Das Problem, das ich bin vor, dass, wenn ich http://localhost/asdasdads eingegeben, der Browser mich http://localhost/ führte stattdessen mit unveränderter URL im Browser aber Browser angezeigt index.php. Es sollte eine 404-Fehlerseite angezeigt werden.

Ich glaube, RewriteRule ^([A-Za-z0-9-_]+)$ /index.php?view=$1 [L] ist die Wurzel dieses Problems. Es wird /index.php?view=asdasdads zu /index.php?view= umgeleitet, weil es nicht gefunden wird. Ich möchte, dass es stattdessen zu 404 umleitet.

Vielen Dank im Voraus.

Antwort

0

Aizat, versuchen Sie die unnötigen Rewrite Bedingungen zu entfernen, und einen Versuch geben dazu:

Der einfachste Weg, um eine 404-Fehlerseite zu setzen, indem direkt eine 404-Fehlermeldung in der .htaccess-Datei Einstellung selbst:

Errordocument 404 /404.php