I read the Inside AdSense Blog because monetization is FUN! Today I woke up to see that they now have a search box that will give results right inside your own page which is a great step beyond their previous effort (the previous effort allowed you to do some basic theming of the results page...pretty useless). So, I got all excited and hooked it up on UAGDSE.com and if you try it out what you'll find is that the search code and Drupal get mad at each other.
A Little History
Drupal, like many web applications, originally used URL parameters to create its URLs. Things like ?q=node/3 or ?q=admin let the system know that the user is requesting the "node/3" page or the "admin" page. Over the years people figured out fancy ways to make URLs work without the ?q= but Drupal still supports this notation in case your configuration doesn't allow the rewriting magic necessary. It's also handy for when you recompile apache and forget rewrite and your site breaks - then you can still get into ?q=admin/settings and fix stuff.
The Google vs. Drupal conflict
The way this becomes a problem is because Google's search expects to be able to use the "q=" parameter and it creates URLs like http://uagdse.com/uagdse-results?q=term which then confuses Drupal into thinking that I'm asking for a page named term which doesn't exist. The funny thing is that when you do a google search for a path that actually exists and is available (like node/198) then Drupal returns that page quite nicely.
I'm not sure what the fix is. I can imagine one solution being to use a more specific url parameter than "q" like "dq" but I doubt we're going to get the millions of people using Drupal to change. I can also imagine a setting in Drupal for "no really, ignore, I only want clean URLs so please ignore any q= in the URL parameters" but that doesn't feel right. Of course, part of the reason I'm writing about this is a little lazyweb plea for someone with a better idea on how to fix it.
Even more likely - no solution. This doesn't seem like that big of a deal so just move on...