Это перенаправит ВСЕ запросы от myhost.com до alt.myhost.com
RewriteCond %{HTTP_HOST} !^alt\.myhost\.com [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/?(.*) http://alt.myhost.com/$1 [L,R,NE]
Код взят из официального mod_rewrite руководства
Если по любой причине строка запроса не, сохраняются, замените последнюю строку
RewriteRule ^/?(.*) http://alt.myhost.com/$1 [L,R,NE,QSA]
ОБНОВЛЕНИЕ: Это перенаправит Ваш определенный URL к другому домену:
RewriteCond %{HTTP_HOST} =myhost.com [NC]
RewriteCond %{QUERY_STRING} ^(p=1&preview=true)
RewriteRule ^$ http://alt.myhost.com/?%1 [R=301,L]
Из-за строки запроса «p = ([0-9] +) & preview = true» я полагаю, что ваша потребность в перенаправлении связана с тем, что администратор wordpress находится на поддомене, а веб-сайт - на ваш основной домен.
Из-за этого вы не можете предварительно просматривать черновики.
Я придумал более широкое решение, которое также работает с настраиваемыми типами сообщений и плагинами, которые добавляют параметры:
RewriteCond %{HTTP_HOST} =myhost.com [NC]
RewriteCond %{QUERY_STRING} (preview=true)
RewriteRule ^$ http://alt.myhost.com/?%{QUERY_STRING} [R=301,L]
На простом английском языке, когда "preview = true "обнаружено в запросе, перенаправление происходит на поддомен alt, и полный запрос сохраняется.