Permiso Htaccess denegado / Índice de directorio mostrado

Le pregunté a una [pregunta]: directorio inverso htaccess aquí sobre enrutamiento inverso. Sin embargo, sigo obteniendo la vista de directorio en lugar del archivo en cuestión.

Por ejemplo: voy a /img/header.jpg Obtengo el contenido de la carpeta / img / mientras existe el archivo header.jpg. Agregué -índices en las opciones, pero eso solo resulta en un mensaje de acceso prohibido 403.

¿Cómo debo editar mi htaccess para mostrar imgs / js / css, etc. pero aún mantener la estructura recursiva?

Htacces actuales:

Options +FollowSymLinks -MultiViews -Indexes # Turn mod_rewrite on RewriteEngine On RewriteBase / RewriteCond %{DOCUMENT_ROOT}/$1/$2.php !-f RewriteRule ^(.*?)/([^/]+)/?$ $1/ [L] RewriteCond %{DOCUMENT_ROOT}/$1.php -f RewriteRule ^(.*?)/?$ $1.php [L] 

gracias por adelantado

Editar

He intentado agregar la siguiente línea directamente después de RewriteBase /:

 RewriteCond %{REQUEST_FILENAME} !-f 

Este trabajo para la mayoría de los archivos. Solo esto debería funcionar cuando se trata de images / css / js / ico / etc. Creo que, en este momento, si encuentra un archivo php directamente, funcionaría.

Lo que no puedo entender es cómo obtener los parámetros restantes.

  /index/foo/bar/for/ 

El archivo que se debe encontrar es foo, ¿cómo obtengo los 2 parámetros restantes en $ _GET?

Cambia tu código a:

Opciones + FollowSymLinks -MultiViews -Indexes

 # Turn mod_rewrite on RewriteEngine On RewriteBase / # If the request is for a valid file RewriteCond %{REQUEST_FILENAME} -f [OR] # If the request is for a valid link RewriteCond %{REQUEST_FILENAME} -l # don't do anything RewriteRule ^ - [L] # if current ${REQUEST_URI}.php is not a file then # forward to the parent directory of crrent REQUEST_URI RewriteCond %{DOCUMENT_ROOT}/$1/$2.php !-f RewriteRule ^(.*?)/([^/]+)/?$ $1/ [L] # if current ${REQUEST_URI}.php is a valid file then # load it be removing optional trailing slash RewriteCond %{DOCUMENT_ROOT}/$1.php -f RewriteRule ^(.*?)/?$ $1.php [L] 

EDITAR: en base a los comentarios de OP, esta solución llena un parámetro de consulta param con el rest de una ruta:

 # Turn mod_rewrite on RewriteEngine On RewriteBase / # If the request is for a valid file RewriteCond %{REQUEST_FILENAME} -f [OR] # If the request is for a valid link RewriteCond %{REQUEST_FILENAME} -l # don't do anything RewriteRule ^ - [L] # if current ${REQUEST_URI}.php is not a file then # forward to the parent directory of crrent REQUEST_URI RewriteCond %{DOCUMENT_ROOT}/$1/$2.php !-f RewriteCond %{QUERY_STRING} ^(?:param=)?(.*)$ RewriteRule ^(.*?)/([^/]+)/?$ $1/?param=$2/%1 [L] # if current ${REQUEST_URI}.php is a valid file then # load it be removing optional trailing slash RewriteCond %{DOCUMENT_ROOT}/$1.php -f RewriteRule ^(.*?)/?$ $1.php [L]