2010-08-10 11 views
5

después de varios meses haciendo que el sitio desaparezca de los resultados de búsqueda en todos los principales buscadores, finalmente descubrí una posible razón.La solicitud HEAD recibe "403 prohibido" mientras que GET "200 ok"?

Utilicé WebBug para investigar el encabezado del servidor. Vea la diferencia si la solicitud es HEAD o GET. datos

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 

enviadas::

CABEZA datos enviados:

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

CABEZA Los datos recibidos

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

GET los datos recibidos:

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 

Ahora, los navegadores por defecto enviar una solicitud GET (al menos esto es lo que dice Firebug). ¿Es posible que los rastreadores envíen una solicitud HEAD en su lugar? Si es así, ¿por qué solo este servidor responde con un 403, mientras que otros servidores de otros sitios que estoy manteniendo no lo hacen?

En caso de que sea importante, la única línea presente en .htaccess es (a menos que mi cliente lo cambió, ya que no me quieren dar acceso a su servidor)

AddType text/x-component .htc 

ACTUALIZACIÓN
Gracias @Ryk. FireBug y Fiddler ambos envían solicitudes GET, que obtienen 200 (o 300) respuestas. Como se esperaba. Así que supongo que es una configuración incorrecta del servidor (aunque es extraño, ya que el hosting es de una compañía importante con millones de clientes) o algo que pusieron en el .htaccess. Tendrán que dejarme revisar su cuenta.

La segunda parte de mi pregunta fue si esa podría ser la causa de que el sitio web no aparezca en ningún motor de búsqueda (sitio: www.attu.it no da ningún resultado). ¿Cualquier pensamiento?

ACTUALIZACIÓN 2
Después de algún volverse locos, resulta que no era de los robots-bloqueantes .htaccess en el directorio raíz, que causó ninguna petición de robots phpMyAdmin para ser enviado de vuelta con un 403 Forbidden

+0

Es un error con el servidor, el cliente quiere que se solucione, deberían darle al menos algo de acceso. Por lo menos, pregúnteles si podían ver una copia del .htaccess actual. –

Respuesta

1

Sugeriría instalar Fiddler y mirar cuidadosamente la solicitud. A veces he visto que un ícono en la página que está en una carpeta que requiere autenticación hace que se devuelva un 403.

Fiddler le dará una buena idea, y también puede probar Firefox e instalar el complemento FireBug e inspeccionar la página en busca de errores.

Al mirar el sitio recibo un montón de 404 para el favicon.ico, pero aparte de eso, cuando hago una simple solicitud GET obtengo un 200 OK, pero cuando hago un HEAD, también obtengo un 403. Mirándolo ahora.

ACTUALIZACIÓN: Creo que podría ser una configuración en el servidor Apache, pero no 100% seguro.http://hc.apache.org/httpclient-3.x/methods/head.html

UPDATE2: Al leer esto, http://www.pubbs.net/200811/httpd/17210-usershttpd-how-to-reject-head-request.html me hace creer que su servidor Apache podría ser configurado para rechazar las solicitudes HEAD. En ese caso se devolverá un 403.

+0

@mjsarfatti - No estoy seguro, pero si los rastreadores/robots usan la solicitud HEAD para rastrear sitios, entonces sí, tendrás un problema. – Ryk

+0

Encontré curl más fácil que el violín –

1

Algunos administrador escribe en el httpd.conf

< límite impuesto BORRAR MOVER COPIAR>
Orden negar, permitir
Denegar de todos
Dejar de 10,0
</Limit>

< LimitExcept PUT DELETE MOVER COPIAR>
Orden negar, permitir
Denegar de todos
</LimitExcept>

Este producir "prohibido" a una petición HEAD. Deberías verificar esto.

1

Tuve este problema exacto porque estaba usando URL firmadas.

Cada URL firmada es válida solo para un método (por ejemplo, GET o HEAD). Si desea utilizar varios métodos, deberá tener varias URL.

+0

Creo que este es el problema que estoy recibiendo actualmente con mi compilación de Gradle: https://stackoverflow.com/questions/48253755/gradle-failing-to-download-dependency-when-head-request - falla ¿Tienes alguna idea de cómo solucionarlo? –

Cuestiones relacionadas