Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: robe007 en 30 Noviembre 2011, 00:08 am



Título: htaccess para redireccion de paginas en mi sitio
Publicado por: robe007 en 30 Noviembre 2011, 00:08 am
Que tal colegas !

Me gustaría me ayudaran en lo siguiente con respecto a las reglas que debo de colocar en un archivo htaccess para controlar el acceso a paginas de mi sitio web:

resulta que al entrar al sitio, entro www.misitio.com/?sk=inicio que es lo mismo que www.misitio.com/index.php?sk=inicio

La idea del sk es la del llamado a un archivo: sk=login -> login.php, sk=inicio -> inicio.php

OK, pero si yo escribo en el navegador www.misitio.com/login.php también entra al login, y la verdad no quiero que sea así, ya que antes de entrar directamente al archivo login.php primero valido algunas cosas, por eso lo paso antes de todo por el index.php

¿Cómo debería ser mi archivo htaccess si quiero que el usuario no pueda acceder a ningun archivo php directamente, si no que a la hora que el usuario vaya a www.misitio.com/algo.php o www.misitio.com/carpeta/otro.php se vaya directamente a www.misitio.com/?sk=algo o www.misitio.com/?sk=otro

Espero haberme dado a entender. Gracias por la ayuda brindada.

Saludos  :D


Título: Re: htaccess para redireccion de paginas en mi sitio
Publicado por: #!drvy en 30 Noviembre 2011, 01:21 am
Código:
RewriteEngine On
RewriteCond %{REQUEST_URI} !=/index.php
RewriteRule ^(.*).php index.php?q=$1.php [L,QSA]


Cualquier archivo php es cambiado a index.php indicandole de parámetro ?sk el archivo al que se intento acceder.
Ejemplo:

Código:
www.server.com/blablabla/php.php
pasa a
Código:
www.server.com/index.php?sk=blablabla/php.php


Citar
OK, pero si yo escribo en el navegador www.misitio.com/login.php también entra al login, y la verdad no quiero que sea así, ya que antes de entrar directamente al archivo login.php primero valido algunas cosas, por eso lo paso antes de todo por el index.php

Mal, en vez de evitar el problema cambiando las urls, podrias incluir en los archivos php un filtro que determine si fue iniciado directamente
o llamado.

Ejemplo
index.php
Código
  1. <?php
  2. $filter = 1;
  3. include_once('blablabla.php');
  4. ?>
  5.  

blablabla.php
Código
  1. <?php
  2. if(empty($filter)){die('403 No esta permitido llamar este archivo directamente.');}
  3. echo 'Hola';
  4. ?>

Así si llamas a blablabla.php directamente, te salta el error, pero si lo incluyes pasara de largo y mostrara "hola".


Saludos


Título: Re: htaccess para redireccion de paginas en mi sitio
Publicado por: robe007 en 30 Noviembre 2011, 01:37 am
Gracias amigo drvy | BSM por responder.

En cuanto al htaccess, en sí no quiero que cuando se coloque:

Código:
www.server.com/blablabla/php.php

quede así:

Código:
www.server.com/index.php?sk=blablabla/php.php

si no mas bien que quede así:

Código:
www.server.com/index.php?sk=php.php

sin el directorio blablabla.

¿Como quedaria en ese caso mi htaccess?

Mil gracias de nuevo por la ayuda.

Saludos

PD: La idea del filtro me parece genial, pero aún así quisiera aprender como quedaría el htaccess