Это будет явно соответствовать вашему формату даты, а не любой серии цифр и слешей:
RewriteCond %{HTTP_HOST} ^blog\.foo\.com$ [NC]
RewriteRule ^/\d{4}/\d{2}/\d{2}/(.*)$ http://foo.com/$1 [L,R=301]
Часть регулярного выражения, которую можно разбить, делает для:
^ # start of non-domain url
/\d{4} # slash followed by 4 digits
/\d{2} # slash followed by 2 digits
/\d{2} # slash followed by 2 digits
/ # closing slash
(.*) # rest of the url, captured to group 1
$ # end of url
С помощью $1
в замещающей группе 1.
В части опций:
L
для "Last" - говорит, что не стоит искать другие правила.
R=301
дляПеренаправление с заголовком 301, что означает постоянное перенаправление (только R отправит временный заголовок 302)
Бит RewriteCond выполняет проверку без учета регистра (опция NC) заголовка HTTP_HOST
(предоставляется пользователем / клиентом) и если он запускается blog.foo.com
, он выполняет перезапись, в противном случае это не так.