Google respond differently to two identical nginx setups and 200 codes; any ideas?

Posted by Yuji Tomita on Server Fault See other posts from Server Fault or by Yuji Tomita
Published on 2012-09-13T20:40:01Z Indexed on 2012/09/13 21:40 UTC
Read the original article Hit count: 387

Filed under:
|

I'm rather confused...

I have a linode.com VPS which has been cloned recently, so the settings are the same between nginx servers.

One lives on a dev subdomain, one on a www.

I'm trying to run a google experiment on my live server, which claims:

Web server rejects utm_expid. Your server doesn't support added query arguments in URLs.

My logs show on the dev server where it works:

74.125.186.32 - - [13/Sep/2012:13:33:45 -0700] 
    "GET /product/iphone-case/?utm_expid=25706866-0
    HTTP/1.1" 200 12521 "-" "Google_Analytics_Content_Experiments 
74.125.186.32 - - [13/Sep/2012:13:33:45 -0700] 
    "GET /product/iphone-case/?ab_reviews=True&utm_expid=25706866-0
     HTTP/1.1" 200 14679 "-" "Google_Analytics_Content_Experiments 

My production server shows google making a second request.

74.125.186.41 - - [13/Sep/2012:13:34:49 -0700] 
    "GET /product/iphone-case/?ab_reviews=on&utm_expid=25706866-1 
    HTTP/1.1" 200 12104 "-" "Google_Analytics_Content_Experiments
74.125.186.41 - - [13/Sep/2012:13:34:49 -0700] 
    "GET /product/iphone-case/?utm_expid=25706866-1 
    HTTP/1.1" 200 12122 "-" "Google_Analytics_Content_Experiments
74.125.186.41 - - [13/Sep/2012:13:34:49 -0700] 
    "GET /product/iphone-case/ <--- A second request for some reason. 
    HTTP/1.1" 200 12522 "-" "Google_Analytics_Content_Experiments

I'm not sure how google determines why it needs to send a second request without the querystring. The original request has clearly sent a 200 OK status response.

Does anybody have any suggestions where to look next? The HTML (compared by diff) on the two pages is exactly the same.

© Server Fault or respective owner

Related posts about nginx

Related posts about google