web-dev-qa-db-fra.com

Le site Web est en cours de maintenance - comment restreindre l'accès?

Actuellement, mon site est en maintenance. Je souhaite être la seule personne capable d'accéder au site Web en ligne jusqu'à la fin de la maintenance. Comment définir des restrictions aux autres? Je déteste les harceleurs.

3
Mina Hafzalla

Actuellement, mon site est en maintenance.

Si votre site Web n'est que temporairement "en maintenance" et qu'il a déjà été activé et indexé par les moteurs de recherche, vous devriez envisager de renvoyer un code de réponse HTTP "Service 503 indisponible" avec éventuellement un en-tête HTTP Retry-After HTTP indiquant le moment où le site est attendu. être à nouveau disponible. Au lieu de simplement bloquer l'accès au site avec une réponse 401 ou 403.

La réponse 503 est spécifiquement destinée aux situations où le site est "en panne pour maintenance" et peut aider à atténuer les effets des temps d'arrêt sur le classement de votre moteur de recherche.

Ceci est facilement réalisé en utilisant mod_rewrite (et mod_headers) dans htaccess afin de bloquer les adresses IP. Cependant, comme mentionné dans les commentaires ci-dessus, le blocage des adresses IP (ou plutôt, ne permettre que quelques adresses IP sélectionnées) peut poser problème, sauf si les adresses IP que vous autorisez sont (raisonnablement) statiques ou si vous pouvez autoriser des plages d'adresses IP (si votre contenu n'est pas trop sensible). ).

Pour réaliser quelque chose comme ceci dans htaccess:

# Declare custom error document
ErrorDocument 503 /errordocs/e503.php

RewriteEngine On
RewriteCond %{REMOTE_ADDR} !=123.123.123.123
RewriteCond %{REMOTE_ADDR} !=124.124.124.124
RewriteCond %{ENV:REDIRECT_STATUS} !=503
RewriteRule .* - [R=503,L]

L'accès est autorisé uniquement aux adresses IP 123.123.123.123 et 124.124.124.124. Ensuite, pour envoyer un en-tête Retry-After inconditionnel:

Header set Retry-After "Wed, 25 Dec 2013 04:00:00 GMT"

(Cela pourrait être envoyé conditionnellement en fonction de la valeur d'une variable d'environnement, par exemple.)

Cependant, personnellement, j'ai tendance à passer la date/heure directement à mon document d'erreur et à permettre à mon script de définir l'en-tête de manière conditionnelle et d'afficher un message significatif à l'utilisateur en même temps (ce serait également nécessaire si vous n'aviez pas mod_headers installé):

# Declare custom error document, passing date/time for Retry-After header
ErrorDocument 503 /errordocs/e503.php?RetryAfter=2013-12-25+04:00:00
6
MrWhite

Je peux voir que vous avez sélectionné "cpanel" comme balise. Dans votre cPanel, vous devriez avoir une option pour protéger les répertoires par mot de passe. Cela ressemble à ceci: enter image description here

Là, vous pouvez configurer un nom d'utilisateur et un mot de passe pour la racine de votre site Web. De cette manière, seules les personnes disposant des informations d'identification appropriées peuvent consulter le site.

1
Pikk