This htaccess snippet is supposed to redirect
myhost.com/?p=1&preview=true
to
alt.myhost.com/?p=1&preview=true
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^myhost.com$ [NC]
RewriteRule ^/\?p=([0-9]+)&preview=true$ http://alt.myhost.com/?p=$1&preview=true [NC,R=301,L]
but for some reason I can't escape the / and ? part of the URL. Not sure why this isnt working...
I've tried escaping ?
\\? \? [?]
and I've tried escaping the /
\\/ \/ [/]
none of these seem to work either...
help!
This will redirect ALL requests from myhost.com to alt.myhost.com
Code taken from official mod_rewrite manual
If for whatever reason the query string is not get preserved, replace the last line by
UPDATE: This will redirect your specific URL to another domain:
Because of the query string "p=([0-9]+)&preview=true" I guess your need for a redirect is due to having wordpress admin on a subdomain and the website on your main domain.
Because of that you can't preview drafts.
I came up with a broader solution that also works with custom post types and plugins that add parameters:
In plain english when "preview=true" is found in a query, the redirection happen to the alt subdomain and the full query is kept.