entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

No muestra documentos cuando oculto parte de la url con .htaccess

Tengo la siguiente estructura en mi directorio html

dominio
|_carpeta1
   |_carpetaA
   |    |_Doc1
   |    |_Doc2
   |_carpetaB

Mi .htaccess tiene el siguiente código

RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ carpeta1/CarpetaA/index.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
IndexIgnore ..

Conseguí hacer que me redireccionase a "CarpetaA" sin problemas, viéndose la URL como quería dominio.es/CarpetaA, pero cuando intento acceder a uno de los archivos del directorio, en este caso tiene solamente pdf, me redirige a dominio.es/doc1 y me salta el error de que la página no existe.

Necesito que se puedan acceder a los archivos, pero tiene que seguir sin verse la url, para que no accedan a otras carpetas que tiene la misma.

1 Respuesta

0voto

Peter Puntos150460

¿Poner un simple archivo index en blanco no te sirve?
¿Con un .htaccess en ese directorio y lo siguiente?

Options -Indexes

Con cualquiera de esas dos puedes dejar los archivos ocultos y que no se vean los archivos.

Saludos.

0voto

Peter comentado

  • Quita tus otras directrices del htaccess, únicamente deja eso.
  • Revisa que tu hosting tenga activo AllowOverride en la configuración de Apache.

Voy a dividir las dudas en 2, para irlas descartando.

1- ¿Porque no pones un archivo index.html en carpeta1, carpetaA y carpetaB?

2- No que borren los archivos, que borren parte de la URL. El htaccess con Options -Indexes debe de ir también dentro de carpeta1, carpetaA y carpetaB.

Saludos.

0voto

Lilii comentado

¿Hay que quitar obligatoriamente todas las otras directrices del .htaccess? Tengo ahí otras opciones que hacen funcionar el servidor, no me interesaría quitarlas.
AllowOverride está activo en el servidor.

1- ¿El archivo index.html debería tener algo escrito dentro? ¿Se crea y ya, o hay que cogerlo de algún otro sitio?
2- Hice lo que me dijiste, puse la opción en todos y sigue el error 500. El cliente accede por URL, quizá al denegarle el acceso, por eso lo impide. Te pongo un ejemplo con esto, para explicarme mejor. Un cliente tiene documentos en una carpeta, entonces nosotros, mediante una documentación externa que pasamos por correo, le ponemos el link de la carpeta en la que se encuentran los documentos dominio.es/carpeta1/CarpetaA

1voto

Peter comentado

1- Un simple archivo index completamente vacío.
2- Options -Indexes no redirige, únicamente prohibe que se muestre el contenido de la carpeta en cuestión.

Habría que revisar todo lo que tienes puesto para saber en donde tienes los problemas, porque la solución real a tu pregunta son las ya mencionadas: Options -Indexes o un simple archivo index.

Configurar todo el servidor para diferentes cosas, ya es diferente.

El problema que veo es que quieren enviarle a un cliente dominio.es/carpeta1/CarpetaA para que vea los archivos, se desplieguen y él pueda acceder a todo, pero que si alguien que no es el entra a esa URL no se vean los archivos. Y eso a así sin más es imposible. O se ven o no se ven de forma general. Otra cosa sería poner acceso con usuario y contraseña a dichas carpetas, que en su caso sería mejor.

Entonces tienen mal pensado su flujo de trabajo y herramientas que utilizan para esas tareas, hay herramientas mucho más sencillas para lo que quieren hacer.

Saludos.

0voto

Lilii comentado

Gracias por tu ayuda, ya entendí bastante mejor las cosas. El caso es que no solo tenemos un cliente, sino varios. No es querer denegar el acceso a otros, sino más bien hacer que no puedan borrar la url, que solo se queden en la carpeta designada.
Gracia a ti, entendí lo que hace el Options -Indexes, que claro, te bloquea la carpeta entera con todo lo que tenga, en vez de bloquear solo el acceso a la carpeta donde se encuentre.
El archivo index.html no hizo nada en el servidor.
Probaré a añadir usuario y contraseña.
También estaba mirando otra opción distinta que se trata de acortar la url, para que no sea visible todo lo demás.
Muchas gracias por tu ayuda, me ha servido bastante

0voto

Peter comentado

De nada :)

Creo que se están complicando con algo que es muy sencillo y deberían de utilizar otra herramienta para esa tarea, pero que bueno que te aclaró un poco las cosas y las entendiste mejor.

Saludos.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta