Foros del Web » Administración de Sistemas » Apache »

[htaccess] Error 500 en vez de 404

Estas en el tema de [htaccess] Error 500 en vez de 404 en el foro de Apache en Foros del Web. Estoy teniendo un leve problema con mi .htaccess Las reglas que tengo funcionan perfecto para lo que quiero (poder entrar a http://www.sitio.com/archivo.php desde http://www.sitios.com/archivo/ ), ...
  #1 (permalink)  
Antiguo 10/10/2007, 07:44
Avatar de webosiris
Moderador egiptólogo
 
Fecha de Ingreso: febrero-2002
Ubicación: Luxor, Egipto
Mensajes: 10.725
Antigüedad: 22 años, 2 meses
Puntos: 998
[htaccess] Error 500 en vez de 404

Estoy teniendo un leve problema con mi .htaccess
Las reglas que tengo funcionan perfecto para lo que quiero (poder entrar a http://www.sitio.com/archivo.php desde http://www.sitios.com/archivo/ ), pero si voy a una página que no existe en vez de tirarme el típico 404 me da un error 500 (Internal Server Error)

Les dejo el código en cuestión (nota: esta copypasteado de por ahí, que no se me dan muy bien las expresiones regulares):
Código:
Options +FollowSymLinks -MultiViews

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*[^/])/?$ /$1.php [QSA,L]

RewriteEngine On
RewriteCond %{HTTP_HOST} ^oraculus.com [NC]
RewriteRule ^(.*)$ http://www.oraculus.com/$1 [L,R=301]
__________________
Pasamos tus PSD a HTML

Pobre del que lo sabe todo, porque no tiene nada más que aprender ni razón para vivir. -
  #2 (permalink)  
Antiguo 10/10/2007, 09:27
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: [htaccess] Error 500 en vez de 404

Bueno, tal y como lo hablamos por el mésenyer:

El problema del error 500 viene de que la regla (los RewriteCond) dice

"si no es archivo, ni es carpeta..."

Si la petición es por

www.sitio.com/cualquiercosa

y ese archivo no existe, el .htaccess le dice a apache que redirija a cualquiercosa.php... que tampoco existe.

Entonces, habrá que decirle a Apache aplique la regla únicamente si el archivo PHP correspondiente existe:

RewriteCond %{SCRIPT_FILENAME}.php -f

Como en el caso de que el archivo PHP no exista, no se hace nada, el sistema sigue su flujo normal, es decir, tirar un lindo 404


Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:14.