RewriteCond %{REQUEST_URI} ^pdf\.example\.com(/*)$ [OR] RewriteRule ^ https://subdomain.newexample.com [NE,R=permanent]
This will rewrite “pdf.example.com” and “pdf.example.com/” to “https://subdomain.newexample.com” every time.
RewriteCond %{HTTP_HOST} ^([a-z.]+)?example.com$ [NC] RewriteCond %{HTTP_HOST} !^www. [NC] RewriteRule .? http://www.%1example.com%{REQUEST_URI} [R=301,L]
This rule captures the optional subdomain using the %1 variable, and, if it doesn’t start with www., redirects with www. prepended to the subdomain. The domain and the original {REQUEST_URI} are appended to the result.
RewriteCond %{HTTP_HOST} !^example.com$ [NC] RewriteRule .? http://example.com%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTP_HOST} ^www.(([a-z0-9_]+.)?example.com)$ [NC] RewriteRule .? http://%1%{REQUEST_URI} [R=301,L]
Here, the subdomain is captured in %2 (the inner capture group) but, since it’s optional and already captured in the %1 variable, all you need is the %1 for the subdomain.
More at https://www.sitepoint.com/apache-mod_rewrite-examples-2