Two hours of my life were wasted on this one, even though I’ve done it before. So…
If you want to move your ~/Sites folder into say Dropbox or AeroFS or Google Drive or SkyDrive and then you still want to point to it from its default location don’t use an alias.
I know an alias is only a ctrl-click away, but it means all sorts of pain.
Instead, move the folder to dropbox by dragging it (yes you can do this), then open Terminal and type:
ln -s ~/Dropbox/Sites ~/Sites
Replace Dropbox with whatever the folder of your service is called.
Restart Apache either by restarting Web Sharing in System Preference -> Sharing or by using Terminal and typing:
apachectl graceful
Cross your fingers and open a virtual host in your web browser. I fought with an Alias and all sorts of folder settings and httpd.conf lines to try and get it working, and then all I needed was to use a SymLink in its place.
Don’t worry about no longer having a ‘real’ ~/Sites folder. You don’t actually need one.
Cheers to James Galley, my desk neighbour for helping my brain to click on this one.