Лучше всего сделать это с помощью 301 редиректа на уровне сервера в файле httpd.conf (или включаемого файла конфигурации). Вместо того, чтобы создавать VirtualHost и отвечать на сервер и фильтровать его с помощью файла .htaccess для каждого домена, вы можете настроить перенаправление в самом VirtualHost.
Вы можете сделать это с mod_rewrite
<VirtualHost *>
ServerName subdomain.example.com
RewriteEngine on
RewriteRule ^/(.*)$ http://example.com/index.php [L,R=301]
</VirtualHost>
<VirtualHost *>
ServerName subdomain2.example.com
RewriteEngine on
RewriteRule ^/(.*)$ http://example.com/404.php [L,R=301]
</VirtualHost>
или если вы работаете mod_alias вы можете использовать это:
<VirtualHost *>
ServerName subdomain.example.com
Redirect 301/http://example.com/index.php
</VirtualHost>
<VirtualHost *>
ServerName subdomain2.example.com
Redirect 301/http://example.com/404.php
</VirtualHost>
Это невозможно сделать с файлом .htaccess. –
Catchall DNS record или что теперь? –