2011-06-01 6 views
2

Lorsque j'obtiens http://example.com/not-here Je reçois une erreur de serveur interne au lieu d'un 404, voici mon fichier htaccess (il supprime l'extension de sorte que abc.php peut être consulté comme example.com/abc au lieu de example.com /abc.php):Erreur interne du serveur htaccess

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

DirectoryIndex login.php index.php 

ErrorDocument 403 /error.php?type=403 
ErrorDocument 404 /error.php?type=404 
ErrorDocument 500 /error.php?type=500 

Son proberly quelque chose de vraiment simple, mais je ne peux pas le voir, toute aide est appriciated

+1

Que contient le journal apache? – akond

+0

@akond: Je ne peux pas accéder aux logs sur un serveur partagé –

Répondre

3

je devrais avoir dans le .htaccess ce qui suit:

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

DirectoryIndex login.php index.php 

ErrorDocument 403 /error.php?type=403 
ErrorDocument 404 /error.php?type=404 
ErrorDocument 500 /error.php?type=500 
+0

Merci @akond +1 –

1

ce que je fais quand je cours dans c'est en commentaire des lignes. Commentez la section de réécriture et voyez si cela fonctionne. Pour commenter le code, mettez un # comme premier caractère. Il s'agit de restreindre le code à la ligne du coupable.

+0

c'est le "RewriteRule^(. +) $/$ 1.php [L, QSA]" qui est à l'origine, des suggestions? –

+0

Laissez-moi essayer et regarder ce soir. Je suis sur une machine à laver ici, je n'ai pas d'accès jusqu'à ce soir. L'anubhava a-t-il répondu ci-dessus? – Justin

+0

J'ai fini par utiliser la réponse de akond –

0

internal server error est causée par boucle infinie de votre RewriteRule.

Il suffit de changer votre RewriteRule à ceci:

RewriteRule ^(.+)(?<!\.php)$ /$1.php [L,NC] 

Negative lookbehind (?<!\.php) empêchera plus d'un interne redirections.