Bloquejar accessos web mitjançant .htaccess

Actualitzat el 2026-10-23 06:01:39 87 visites

En aquest manual t'explicarem com negar l'accés a algú al nostre lloc web mitjançant l'edició del fitxer .htaccess.

Connecta't via FTP al directori '/datos/web/' i edita el fitxer '.htaccess'.

info El fitxer '.htaccess' es troba ocult. Si no el veus, hauràs d'activar l'opció per veure fitxers ocults al teu client FTP. També és possible que hagis de crear-lo.

A continuació, afegeix les línies de codi que especifiquem segons les necessitats de la teva pàgina web.

Negar l'accés a una IP en concret

Amb aquest primer codi, podràs bloquejar l'accés a un usuari per la seva adreça IP concreta. D'aquesta manera, quan l'usuari vulgui connectar-se, se li mostrarà un error 403 Forbidden:

deny from 173.236.241.100

És possible que requeris bloquejar un bloc sencer d'IP (no ho recomanem). Per fer-ho has de deixar l'últim octet sense especificar; d'aquesta manera neges l'accés a qualsevol que tingui aquesta IP en el rang de 173.236.241.0 a 173.236.241.255:

deny from 173.236.241.

Permetre l'accés només a una IP en concret

Si, per contra, el que necessites és que ningú pugui accedir a la teva web, però tu o algú hagi de poder veure-la per treballar-hi, pots bloquejar l'accés a totes les IP menys a una en concret amb el següent codi:

order deny,allow
deny from all
allow from <TU_DIRECCION_IP>

Negar l'accés a un domini concret

Amb això farem que qualsevol que es connecti al teu lloc des d'un domini concret, per exemple 'www.swmanuales.com', no pugui accedir. Hi ha tres maneres de dur-ho a terme:

403 forbidden

Si algú fa clic en un enllaç a swmanuales.com que redireccioni al teu lloc, veuran un error 403 Forbidden error:

SetEnvIfNoCase Referer 'swmanuales.com' bad_referer
Order Allow,Deny
Allow from ALL
Deny from env=bad_referer

500 internal server error

Es mostrarà un error 500 Internal Server Error per denegar qualsevol petició web que vingui redireccionada des del domini swmanuales.com:

RewriteEngine on
RewriteCond %{HTTP_REFERER} swmanuales\.com [NC,OR]
RewriteRule .* - [F]

Redirecció a google.com

Amb aquest codi es redirecciona qualsevol visitant de la URL http://swmanuales.com cap a la URL http://www.google.com:

RewriteEngine On
RewriteCond %{HTTP_REFERER} ^http://swmanuales.com/
RewriteRule /* http://www.google.com [R,L]

Negar l'accés a fitxers

Amb aquest codi negarem l'accés a qualsevol fitxer amb l'extensió que indiquem. En lloc de visualitzar el contingut, es veurà un error 404. En l'exemple, el codi obliga qualsevol fitxer acabat en .inc a donar l'error 403 quan sigui visitat:

<Files ~ '\.inc$'>  
Order Allow,Deny
Deny from All
</Files>

Negar l'accés a fitxers 'ocults'

Els fitxers ocults, com el cas del .htaccess, són aquells que comencen amb un punt '.'. Aquests tipus de fitxers no són visibles per als visitants. Pots negar recursivament tots els accessos a tots els fitxers posant el següent codi a la part superior del teu .htaccess:

RedirectMatch 403 /\..*$

Negar l'accés a directoris

Si no tens un fitxer índex al teu directori, tots els teus fitxers s'enumeren en una llista de directori perquè ho vegi qualsevol. Habitualment, sempre tenim un fitxer 'index.html o index.php' al nostre servei, però podem necessitar negar l'accés per temes de seguretat. Pots negar l'accés a una carpeta o directori concret amb el següent codi perquè quan un visitant accedeixi a la llista de directoris doni un error 404 Forbidden:

Options -Indexes

Negar l'accés a un directori concret

Si tens un directori concret al qual no vols que accedeixin els usuaris, has d'utilitzar el següent codi. Nosaltres posarem, per exemple, que el directori que volem bloquejar es digui 'swmanuales':

RewriteEngine On
RewriteRule (^|/)swmanuales(/|$) - [F]

Negar l'accés durant una hora específica del dia

D'aquesta manera negarem l'accés a la nostra web durant una hora específica del dia. Podem especificar una o diverses hores.

Exemple, especificant que no es permeti l'accés de 15:00 a 15:59:

RewriteEngine On
# Si la hora es 15 (3 PM)
RewriteCond %{TIME_HOUR} ^15$
# Negar todos los accesos
RewriteRule ^.*$ - [F,L]

Exemple, especificant que no es permeti l'accés de 15:00 a 16:59 i de 6:00 a 7:00:

RewriteEngine On
# Si la hora es 3 PM o 4 PM o 6 AM
RewriteCond %{TIME_HOUR} ^15|16|06$
# Negar todos los accesos
RewriteRule ^.*$ - [F,L]