Будьте очень осторожны с перенаправлениями 301, потому что по умолчанию браузер, который получает перенаправление 301, будет сохранять его постоянно - это означает, что вы потеряете контроль над тем, что этот браузер увидит, когда он попытается получить доступ к домену www.example.com
.
Смотрите, например, это обсуждение http://getluky.net/2010/12/14/301-redirects-cannot-be-undon/
Так что либо убедитесь, что он не кэшируется, либо используйте mod_proxy (я рекомендую mod_proxy).
Если вы можете позволить пользователю увидеть изменение URL в адресной строке браузера, используйте mod_rewrite:
<VirtualHost *>
ServerName www.example.com
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.example.com
RewriteRule ^/(.*)$ http://example.com/$1 [L,R=301,E=nocache:1]
## Set the response header if the "nocache" environment variable is set
## in the RewriteRule above.
Header always set Cache-Control "no-store, no-cache, must-revalidate" env=nocache
## Set Expires too ...
Header always set Expires "Thu, 01 Jan 1970 00:00:00 GMT" env=nocache
</VirtualHost>
Если вы хотите, чтобы «перенаправление» было невидимым для пользователя, используйте mod_proxy:
<VirtualHost *>
ServerName www.example.com
ProxyRequests Off
<Proxy *>
Order Deny,Allow
Deny from all
Allow from 203.0.113.67
</Proxy>
ProxyPass / http://example.com/
ProxyPassReverse / http://example.com/
</VirtualHost>
Следует отметить, что mod_proxy, если он плохо настроен, может нанести вред вашей сети.