Вероятно, лучше всего воспроизвести проблему на вашем локальном компьютере и включить RewriteLogLevel, чтобы вы могли видеть, что происходит. (Поскольку вы обычно не можете изменить уровень журнала на виртуальном хостинге)
Вы можете «смоделировать» проблему, переписав каталог в основной конфигурации Apache. (Разделяемый хостинг, очевидно, выполняет свою собственную переписку, прежде чем попадет в .htaccess!) Если вы не можете воспроизвести проблему, возможно, вам придется начать отладку методом проб и ошибок на удаленном сервере. Это некрасиво, но если это единственный вариант:
Используйте флаг R (перенаправление) в подстановках, чтобы отправить любой переписанный URL обратно в браузер. Используйте TELNET (или соответствующую надстройку браузера) для проверки ответов HTTP.
Не забывайте избегать точек в регулярных выражениях!
В качестве примечания, шаблон RewriteRule сопоставляется перед RewriteConds над ним. Этот вид настройки, вероятно, лучше для производительности:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/domain1\.com/(.*)$ /domain1.com/index.php?q=$1 [L,QSA]
# ^ should be escaped
Обратите внимание, что я не проверял это.