I'm afraid your rewrite_rule is broken.
Try to disable redirect_canonical by adding:
on your functions.php, and check again the author page by query string.
If it still doesn't work, maybe you can check out the permalink rewrite rules:
Remove above codes from the functions.php first, and open your header.php, add right after <?php
print_r( $wp_rewrite ); exit();
save and reload any page, it will print out the $wp_rewrite object like this:
[permalink_structure] => /blog/%postname%/
[use_trailing_slashes] => 1
[author_base] => author
[search_base] => search
[comments_base] => comments
[pagination_base] => page
[feed_base] => feed
[feed_structure] => feed/%feed%
[front] => /blog/
[index] => index.php
[rules] => Array
Copy and paste the result somewhere else. Don't forget to delete the above code afterward.
Check on these line:
[rules] : is there something like 'author/'?