Rivermillos:
Evitar el indexado con .htaccess es la forma más eficaz y segura, asi que no veo porque renunciar a ella.
en cuanto a las imágenes, tambien .htccess te da una solución efectiva
Código Apache:
Ver originalOptions -Indexes +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?tudominio.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]
con esa sintáxis en particular, no solo previenes que las imágenes puedan ser llamadas desde un dominio que no sea el tuyo (tudominio.com en este caso) sino que tambien si el usuario invoca directamente a la imagen desde la barra de direcciones del navegador, no la podrá acceder.
Otra variante mas elaborada...
Código Apache:
Ver originalOptions -Indexes +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?tudominio.com [NC]
RewriteRule \.(jpg|png|gif)$ http://tudominio.com/privado.jpeg [NC,R,L]
En este caso si intentan accder a algun gif,png o jpg se les muestra una imagen de advertencia, de extensión .jpeg (la cual removimos del rewrite para que no entre en conflicto con las extensiones bloqueadas.
Algo más rebuscado, pero no se hasta que punto de vista funcional
guardar tus imágenes en alguna carpeta fuera de tu DOCUMENT_ROOT (si es que tienes acceso), crear una script php
<?php
header("content-type: image/jpeg");
$img = file_get_contents('/www/homepages/user/logo.jpg');
echo $img;
?>
el valor de logo.jpg podria ser una variable pasada con $_GET
saludos