2010-08-10 4 views
5

Après plusieurs mois ayant fait disparaître le site des résultats de recherche dans tous les principaux moteurs de recherche, j'ai finalement découvert une raison possible. J'ai utilisé WebBug pour enquêter sur l'en-tête du serveurLa requête HEAD reçoit "403 interdit" alors que "200 ok"?

Voir la différence si la demande est HEAD ou GET.

TÊTE données envoyées:

HEAD/HTTP/1.1 
Host: www.attu.it 
Connection: close 
Accept: */* 
User-Agent: WebBug/5.0 

TÊTE données reçues:

HTTP/1.1 403 Forbidden 
Date: Tue, 10 Aug 2010 23:01:00 GMT 
Server: Apache/2.2 
Connection: close 
Content-Type: text/html; charset=iso-8859-1 

sont envoyés données:

GET/HTTP/1.1 
Host: www.attu.it 
Connection: close 
Accept: */* 
User-Agent: WebBug/5.0 

GET données reçues:

HTTP/1.1 200 OK 
Date: Tue, 10 Aug 2010 23:06:15 GMT 
Server: Apache/2.2 
Last-Modified: Fri, 08 Jan 2010 08:58:01 GMT 
ETag: "671f91b-2d2-47ca362815840" 
Accept-Ranges: bytes 
Content-Length: 722 
Connection: close 
Content-Type: text/html 

// HTML code here 

Maintenant, les navigateurs par défaut envoyer une requête GET (au moins c'est ce que Firebug dit). Est-il possible que les robots d'exploration envoient une requête HEAD à la place? Si oui, pourquoi seulement ce serveur répond avec un 403, alors que d'autres serveurs d'autres sites que je conserve ne le font pas?

Dans le cas où il est important, la présente seule ligne dans .htaccess est (à moins que mon client a changé, car ils ne veulent pas me donner accès à leur serveur)

AddType text/x-component .htc 

MISE À JOUR
Merci @Ryk. FireBug et Fiddler envoient tous les deux des requêtes GET, qui reçoivent 200 (ou 300) réponses. Comme prévu. Donc, je suppose que c'est un mauvais serveur (même si c'est étrange car l'hébergement provient d'une grande entreprise avec des millions de clients) ou quelque chose qu'ils ont mis dans le .htaccess. Ils devront me laisser regarder dans leur compte.

La deuxième partie de ma question était si cela pourrait être la cause du site n'apparaissant dans aucun moteur de recherche (site: www.attu.it ne donne aucun résultat). Toute pensée?

MISE À JOUR 2
Après quelques bidouiller, il se trouve qu'il y avait les robots-blocage phpMyAdmin .htaccess dans le répertoire racine, qui a causé toute demande de robots à renvoyer avec un 403 Forbidden

+0

C'est un bug avec le serveur, le client veut le réparer, ils devraient vous donner au moins un accès. À tout le moins, demandez-leur s'ils peuvent voir une copie de l'actuel .htaccess. –

Répondre

1

Je suggère d'installer Fiddler et d'examiner attentivement la demande. J'ai vu parfois qu'une icône sur la page qui se trouve dans un dossier qui nécessite une authentification provoque le retour d'un 403.

Fiddler vous donnera une bonne idée, et vous pouvez également essayer Firefox et installer FireBug add-on et inspecter la page pour les erreurs. En regardant le site, je reçois un tas de 404 pour le favicon.ico, mais en dehors de cela quand je fais une simple requête GET, je reçois un 200 OK, mais quand je fais un HEAD, je reçois également un 403. En regardant maintenant. MISE À JOUR: Je pense qu'il pourrait s'agir d'une configuration sur le serveur Apache, mais pas sûre à 100%.UPDATE2: La lecture de ce http://www.pubbs.net/200811/httpd/17210-usershttpd-how-to-reject-head-request.html me fait croire que votre serveur Apache pourrait être configuré pour rejeter les requêtes HEAD. Dans ce cas, il retournera un 403.

+0

@mjsarfatti - Je ne suis pas sûr, mais si les crawlers/robots utilisent la requête HEAD pour explorer des sites, alors oui, vous aurez un problème. – Ryk

+0

J'ai trouvé la boucle plus facile que le fiddler –

1

Certains administrateur écrit dans le httpd.conf

< Limit PORTER SUPPRIMER MOVE COPIE>
ordre deny, allow
Deny de tous
Autoriser de 10,0
</Limit>

< LimitExcept PUT SUPPRIMER MOVE COPIE>
ordre deny, allow
Deny de tous
</LimitExcept>

Ce produit "Interdit" à une requête HEAD. Vous devriez vérifier cela.

1

J'ai eu ce problème exact parce que j'utilisais des URL signées.

Chaque URL signée est valide pour une seule méthode (par exemple, GET ou HEAD). Si vous voulez utiliser plusieurs méthodes, vous devrez avoir plusieurs URL.

+0

Je pense que c'est le problème que je suis en train d'obtenir avec ma construction Gradle: https://stackoverflow.com/questions/48253755/gradle-failing-to-download-dependency-when-head-request -échoue. Avez-vous une idée de comment contourner cela? –

Questions connexes