Возможно, это можно сделать с помощью регулярного выражения, но оно не очень подходит для таких диапазонов. Другим способом сделать это может быть использование RewriteMap в вашей конфигурации Apache, например:
RewriteMap examplemap txt:/path/to/file/map.txt
RewriteRule ^/?p=(.*) ${examplemap:$1|/?p=$1}
Ваш /path/to/file/map.txt
файл будет содержать что-то вроде:
1 http://domain2.com/?p=1
2 http://domain2.com/?p=2
3 http://domain2.com/?p=3
.
.
2000 http://domain2.com/?p=2000
Если запись не найдена в файле карты, то по умолчанию она должна соответствовать существующему домену из-за части после канала в RewriteRule. Это может показаться излишним, но дает вам наилучший уровень контроля над каждым перенаправлением.
Приведенный выше код не был протестирован, но, надеюсь, он объясняет принцип. См. Apache docs для получения дополнительной информации об использовании RewriteMap.