Ну, разделение на уровни HTTPS сверху VPN действительно кажется немного чрезмерным, учитывая, что это шифрует все дважды, но это незначительно чрезмерно.
Если Вы взаимно соглашаетесь использовать HTTPS без VPN, затем, по крайней мере, пойдите для клиентских сертификатов и не просто паролей. Это было бы более безопасным, чем разрешение просто любой машины от любого сайта для соединения и предотвратит кого-то, кто, оказывается, выясняет пароль от доступа к системе.
<VirtualHost *>
ServerName example.com
Redirect permanent / http://www.example.com/
</VirtualHost>
Обработает фиксацию Вашего материала www/non-www.
Затем для любых других хостов, просто укажите на свое значение по умолчанию vhost на некоторый пустой documentroot (или некоторый сценарий, который обрабатывает любые пользовательские 404, которые Вы хотите.
Необходимо добавить example.com к строке ServerAlias:
ServerAlias example.com *.example.com
И затем перепишите свой RewriteCond, чтобы быть:
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com$1 [R=301,L]
... потому что я не думаю, что Вам нужен тот первый % {HTTP_HOST} строка.
использование
ServerName example.com
ServerAlias *.example.com
Я получаю перенаправление от non-www до www, но один только example.com возвращает 404