Efectivamente emprear, hace eso el archivo PHP.
Aquí mi código del htaccess:
[Lo que hace es que no se puede ver en la web (y solo si proviene de localhost se puede hacer) ningún ningún archivo gif|jpg|jpeg|png|bmp, con lo que me queda que todos los demás archivos (.php principalmente) son los únicos que pueden ejecutarse/mostrarse. Además, los archivos gif|jpg|jpeg|png|bmp solo los puedo mostrar desde http://localhost/visualizar-imagen.php?imagen=
Está todo correcto??]
Código Apache:
Ver original#Solo se pueden ver los archivos .(gif|jpg|jpeg|png|bmp) desde http://localhost/visualizar-imagen.php?imagen=archivo_ejemplo.extensión
SetEnvIfNoCase Referer "^http://localhost/visualizar-imagen.php" local_ref=1
<filesMatch "\.(gif|jpg|jpeg|png|bmp)$">
Order Allow,Deny
Allow from env=local_ref
</filesMatch>
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
# Si... otra cosa. [B]¿Esto qué hace?[/B]
RewriteCond %{REQUEST_FILENAME} !-f
# Si el archivo no es un directorio
RewriteCond %{REQUEST_FILENAME} !-d
# "Redirigir" a paginaNo-existe.html si las extensiones de los archivos a los que se quiere acceder son gif|jpg|jpeg|png|bmp
RewriteRule . /paginaNo-existe.html [L]
# Si la consulta tiene extension .php
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^.]+)\.php\ HTTP
RewriteCond %{HTTP_REFERER} !^http://localhost$ [NC]
RewriteCond %{HTTP_REFERER} !^http://localhost/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://localhost$ [NC]
RewriteCond %{HTTP_REFERER} !^http://localhost/.*$ [NC]
RewriteRule .*\.(gif|jpg|jpeg|png|bmp)$ - [F,NC,L]
</IfModule>