Y esa sería la primera solución a intentar: le das al subdominio la misma IP que la de tu aplicación en xxx.com, y listo. Ni mod_rewrite ni nada. Te vale con agregar el nombre del subdominio al ServerAlias.
Ejemplo: http://www.valladolid.es está en 195.57.2.84, mientras que info.valladolid.es está en 95.39.12.93.
Eso sí... depende luego de Moodle que funcione bien. Es decir: que TODAS sus peticiones internas sean relativas, y no enlaces absolutos, porque entonces sí que cambiaría la URL en el navegador del usuario.
En cuanto a lo que te pasa sobre el cambio de URL, es posible que sea debido a lo que comenta la documentación de mod_rewrite: que al indicar una URL absoluta, se provoca una redirección si mod_proxy no está activado.
Para saber si está activado mod_proxy, yo suelo hacer esto:
Using bash Syntax Highlighting
- root# a2dismod
- Your choices are: alias auth_basic authn_file authz_default authz_groupfile authz_host authz_user autoindex cgi deflate dir env expires include jk mime mime_magic negotiation php5 reqtimeout rewrite setenvif ssl status userdir
- Which module(s) do you want to disable (wildcards ok)?
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
Using bash Syntax Highlighting
- ^C
- root# a2enmod
- Your choices are: actions alias asis auth_basic auth_digest authn_alias authn_anon authn_dbd authn_dbm authn_default authn_file authnz_ldap authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cern_meta cgi cgid charset_lite dav dav_fs dav_lock dbd deflate dir disk_cache dump_io env expires ext_filter file_cache filter headers ident imagemap include info jk ldap log_forensic mem_cache mime mime_magic negotiation php5 php5filter proxy proxy_ajp proxy_balancer proxy_connect proxy_ftp proxy_http proxy_scgi reqtimeout rewrite setenvif speling ssl status substitute suexec unique_id userdir usertrack version vhost_alias
- Which module(s) do you want to enable (wildcards ok)?
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Lo dicho: yo probaría a darle al subdominio la misma IP que la aplicación, y así se conecta todo al mismo sitio, y no hace falta rewrite ni nada.