Lo prometido es deuda :P
Es un ejemplo simple pero lo importante es que entiendas como funciona
Tengo esta estructura de directorios
/img
/public
Public es el root directory, es decir que es lo que pueden ver los usuarios de nuestro sitio, img no esta a su alcance
el htacces es algo asi
Código PHP:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
El script php es
Código PHP:
// si entro a http://misitio.com/imagen.jpg, $uri sera /imagen.jpg
$uri = $_SERVER["REQUEST_URI"];
// si hay algun parametro pasado por GET lo eliminamos
if (strpos($uri, "?") !== false) {
$uri = substr($uri, 0, strpos($uri, "?"));
}
$rutaImagen = "../img".$img;
/* en este ejemplo el filtro para poder ver o no una imagen consiste en pasar este parametro por GET, en tu caso debes poner que este logueado o no */
$estaLogueado = $_GET["logueado"] == 1;
if($estaLogueado) {
if (file_exists($rutaImagen)) {
/* lo mas "importante", a lo que le tienes que prestar atencion es a las proximas 2 lineas, el resto lo puedes implementar de mil formas diferentes */
Header("Content-type: image/jpeg");
echo file_get_contents($rutaImagen);
die();
} else {
die("La imagen que buscas no existe");
}
} else {
die("No estas logueado, no tienes acceso a las imagenes privadas");
}
y esto es todo =)
cualquier cosa que no entiendas aqui estamos :P
Saludos!