Вы можете также объединить их в одно правило:
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$ [NC]
RewriteRule ^ http://sub.example.com%{REQUEST_URI} [R=301,L]
Замечание Марка о /
является важным соображением. Так как вы определяете правило в .htaccess
, ввод (и связывание захваченной обратной ссылки) не будет начинаться с косой черты, поэтому вам действительно нужен явный слот в этом случае (как у вас).
Так как в любом случае мы просто хотим весь путь, использование %{REQUEST_URI}
более надежно в этом смысле, потому что оно всегда будет иметь косую черту, независимо от контекста, в котором мы используем правило.