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

Php y htaccess problema 404

Estas en el tema de Php y htaccess problema 404 en el foro de Apache en Foros del Web. Hola tengo un gran problema en una web, les explico quiero eliminar el (.php) de los archivos con htaccess eso es facil, pero me surge ...
  #1 (permalink)  
Antiguo 05/05/2012, 20:25
Avatar de ximages  
Fecha de Ingreso: marzo-2012
Ubicación: San Jose
Mensajes: 28
Antigüedad: 12 años, 8 meses
Puntos: 0
Exclamación Php y htaccess problema 404

Hola tengo un gran problema en una web, les explico
quiero eliminar el (.php) de los archivos con htaccess eso es facil, pero me surge un grabe problema por que tambien quiero redireccionar a hhtps://www. en caso que el visitanten entre a miweb.com y por ultimo quiero redireccionar a mi 404 custom..

ME ESTA DANDO ERROR

actualmente en mi htaccess tengo este codigo

Código HTML:
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ $1.php [L,QSA]
RewriteCond %{HTTP_HOST} ^miweb.com [NC]
RewriteRule ^(.*)$ https://www.miweb.com/$1 [L,R=301]
ErrorDocument 404 /404.shtml
Todo funciona bien pero el problema es que cuando voy a una pagina que no existe me deberia llevar a la rediccion 404.shtml y no lo hace, lo que hace es producir un error:
Código:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Estoy seguro que es por que tengo algo mal configurando en mi htaccess, si alguien me podria ayudar le estaria agradecido


El detalle es que si elimino las siguientes lineas

Código HTML:
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ $1.php [L,QSA]
redirecciona bien a la cutom 404 y a https:// pero no eliminaria los .php de mis archivos
  #2 (permalink)  
Antiguo 06/05/2012, 08:29
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Php y htaccess problema 404

analizá esto

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

Eso va a hacer que cualquier archivo, sea o no php, busque un archivo del mismo nombre con la extensión php,
algo.css --> algo.css.php, lo mismo para el resto, incluso el de error, entonces vas a producir un bucle infinito porque no se encuentra nada

La solución es, que tus condicionales sean

Código Apache:
Ver original
  1. RewriteCond %{REQUEST_FILENAME}\.php -f
  2. RewriteCond %{REQUEST_FILENAME} !-d

con lo que solo se lo estás aplicando a los .php

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 06/05/2012, 17:33
Avatar de ximages  
Fecha de Ingreso: marzo-2012
Ubicación: San Jose
Mensajes: 28
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Php y htaccess problema 404

Gracia eso era justo lo que necesitaba.. si alguien conoce algún sitio donde me pueda bajar un curso o aprender htaccess le agradecería que me dejara el link :D he buscado en google pero no encuentro ninguna con un curso completo.. la mayoría solo dan tips y no explican bien para que funciona cada cosa ^_^
  #4 (permalink)  
Antiguo 06/05/2012, 17:45
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 17 años, 4 meses
Puntos: 1567
Respuesta: Php y htaccess problema 404

Uno de los mejores
http://www.askapache.com/htaccess/htaccess.html
De todas maneras lo mejor es siempre recurrir a las fuentes

http://httpd.apache.org/docs/

y leer la info de cada directiva y si es aplicable a .htaccess

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: 404, htaccess, html, php
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 06:59.