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

Eliminar .php con htaccess

Estas en el tema de Eliminar .php con htaccess en el foro de Apache en Foros del Web. Hola estoy intentando eliminar las extensiones .PHP de mi barra de direccion con htaccess, ejemplo: www.midominio.com/index.php quiero convertirlo a www.midominio.com/index Lo unico que he logrado ...
  #1 (permalink)  
Antiguo 02/10/2012, 03:49
 
Fecha de Ingreso: octubre-2008
Mensajes: 91
Antigüedad: 15 años, 6 meses
Puntos: 0
Eliminar .php con htaccess

Hola estoy intentando eliminar las extensiones .PHP de mi barra de direccion con htaccess, ejemplo:

www.midominio.com/index.php quiero convertirlo a www.midominio.com/index

Lo unico que he logrado es que si escribo www.midominio.com/index me funciona bien, es decir eso es lo que deja en la barra de direcciones y me lleva al php, pero si pongo www.midominio.com/index.php me lleva al PHP pero la barra de direcciones no la cambia a index simplemente...

Estoy usando este codigo:
Código HTML:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
Muchas gracias, un saludo!
  #2 (permalink)  
Antiguo 02/10/2012, 06:35
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Eliminar .php con htaccess

la url amigable lo que hace es reescribir una ur que coincida con un patrón, por lo tanto para él es válido ambas porque tienes otra regla que le indica que si el archivo existe lo deje pasar, y tiene que ser porque de otro modo tendrías que eliminarla y hacer una regla para los assets de la web, como en CodeIgniter:

Código Apache:
Ver original
  1. RewriteEngine on
  2. RewriteCond $1 !^(index\.php|img|js|css|jquery\.mobile|robots\.txt|assets|files|reports)
  3. RewriteRule ^(.*)$ index.php/$1 [L]
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 02/10/2012, 07:24
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años
Puntos: 33
Respuesta: Eliminar .php con htaccess

Buenas, nitsuga1986.

Como dice maycolalvarez, para htaccess ambas son válidas. El caso es que .htaccess no funciona como algo de "doble vía"... yo al principio también me liaba y pensaba que no funcionaba.

Lo que harás con esas líneas de texto de tu .htaccess es que entrando algo sin el ".php" te rediriga a esa misma página con ".php", pero no se mostrará en la URL.

Para hacer algo contrario no sé si se puede desde .htacess, pero seguro que hay alguna manera de hacerlo...

De todas maneras por eso no te preocupes. Fíjate que a muchas webs les pasa esto y no nos damos cuenta, jeje.

Saludos!
  #4 (permalink)  
Antiguo 02/10/2012, 08:42
 
Fecha de Ingreso: octubre-2008
Mensajes: 91
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Eliminar .php con htaccess

Cita:
Iniciado por maycolalvarez Ver Mensaje
la url amigable lo que hace es reescribir una ur que coincida con un patrón, por lo tanto para él es válido ambas porque tienes otra regla que le indica que si el archivo existe lo deje pasar, y tiene que ser porque de otro modo tendrías que eliminarla y hacer una regla para los assets de la web, como en CodeIgniter:

Código Apache:
Ver original
  1. RewriteEngine on
  2. RewriteCond $1 !^(index\.php|img|js|css|jquery\.mobile|robots\.txt|assets|files|reports)
  3. RewriteRule ^(.*)$ index.php/$1 [L]

Muchas gracias a los dos :D me he quedado un poco mas tranquilo, aunque no entiendo muy bien este codigo..¿funcionaria algo asi?

Código PHP:
RewriteRule ([^/.]+).php$  $[L

Es decir, todo lo que traiga .php lo que hago es reescribirlo sin PHP
  #5 (permalink)  
Antiguo 02/10/2012, 10:51
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Eliminar .php con htaccess

Eso es preferible hacerlo desde el mismo php.
Se supone que la navegabilidad de tu sitio está dada por los links que vos construyas, si apareciese un .php sería porque ha sido ingresado manualmente por algún usuario


Al inicio de tus páginas deberías poner
Código PHP:
Ver original
  1. <?php
  2. $recurso = $_SERVER['REQUEST_URI'];
  3. $separar = explode(".",$recurso);
  4. $separar = end($separar);
  5. if($separar  == "php"){
  6. $dir =substr("$recurso", 0, -4); //
  7. // o mejor
  8. // $dir = "404.html"; // ´lo mandas a un "not found" para que no insistan con el .php
  9. header("Location: $dir");
  10. }
  11. ?>

Demo:
http://mr4.emprear.com/otracarpeta/algo
http://mr4.emprear.com/otracarpeta/algo.php
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: htaccess, 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 23:47.