apache .htaccess

apache - Denegar el acceso a una carpeta específica en.htaccess



(9)

Intento negar a los usuarios el acceso a la carpeta "sitio / incluye" manipulando la URL. No sé si tengo que negar todo y hacer excepciones individuales para permitir, si puedo negar esta única carpeta, o si hay una función de reescritura que se puede utilizar.

Ejemplo específico: no quiero ver los archivos del directorio escribiendo "localhost / site / includes" en la URL.


Además de los métodos seguros sugeridos, que yo también podría haber publicado. Hay una manera menos complicada y menos complicada de hacerlo, si el directorio no se ha creado dinámicamente.

Ponga un archivo index.html en blanco en ese directorio :)

y si está creando un directorio dinámicamente:

mkdir($dirname, 0644);


Configuraremos el directorio para que sea muy seguro, denegando el acceso para todos los tipos de archivos. A continuación se muestra el código que desea insertar en el archivo .htaccess.

Order Allow,Deny Deny from all

Como ahora hemos establecido la seguridad, ahora queremos permitir el acceso a nuestros tipos de archivos deseados. Para hacerlo, agregue el siguiente código al archivo .htaccess bajo el código de seguridad que acaba de insertar.

<FilesMatch "/.(jpg|gif|png|php)$"> Order Deny,Allow Allow from all </FilesMatch>

su archivo .htaccess final se verá como

Order Allow,Deny Deny from all <FilesMatch "/.(jpg|gif|png|php)$"> Order Deny,Allow Allow from all </FilesMatch>

Origen desde Permitir el acceso a tipos de archivos específicos en un directorio protegido


Crear index.php, index.html, index.htm no es seguro. Porque, cualquiera puede obtener acceso a tus archivos dentro del directorio especificado adivinando el nombre de los archivos. Ejemplo: http://yoursite.com/includes/file.dat Entonces, el método recomendado es crear un archivo .htaccess para denegar a todos los visitantes;). Que te diviertas !!


Cree el archivo de site/includes/.htaccess y agregue esta línea:

Deny from all


En un archivo .htaccess debes usar

Deny from all

Pon esto en el site/includes/.htaccess para hacerlo específico al directorio includes

Si solo desea deshabilitar una lista de archivos de directorio, puede usar

Options -Indexes


Puede crear un archivo .htaccess para la carpeta, que debería haber denegado el acceso con

Deny from all

o puede redirigir a una página 404 personalizada

Redirect /includes/ 404.html


Puedes hacer esto dinámicamente de esa manera:

mkdir($dirname); @touch($dirname . "/.htaccess"); $f = fopen($dirname . "/.htaccess", "w"); fwrite($f, "deny from all"); fclose($f);


También puede poner este IndexIgnore * en su archivo .htaccess raíz para deshabilitar la lista de archivos de todos los directorios de su sitio web, incluido el subdirectorio


También puedes denegar el acceso a una carpeta usando RedirectMatch

Agregue la siguiente línea a htaccess

RedirectMatch 403 ^/folder/?$

Esto devolverá un error 403 forbidden para la carpeta, es decir: http://example.com/folder/ pero bloquea el acceso a los archivos y carpetas dentro de esa carpeta, si desea bloquear todo dentro de la carpeta, simplemente cambie el patrón de expresiones regulares. a ^/folder/.*$ .

Otra opción es mod-rewrite Si url-rewrting-module está habilitado, puede usar algo como lo siguiente en root/.htaccss :

RewriteEngine on RewriteRule ^folder/?$ - [F,L]

Esto mapeará internamente una solicitud para que la folder forbidden la página de error.