У меня есть следующие правила:
RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.example\.com$ RewriteRule ^blog/?$ http://blog.example.com/ [P] RewriteRule ^(blog/.*)$ http://blog.example.com/$1 [p] RewriteCond %{HTTP_HOST} ^example.com$ RewriteRule ^(.*)?$ http://www.example.com/$1 [L,R=301]
То, чего я пытаюсь добиться, и это оправдывает мои ожидания до 90%, это то, что любые попадания на http://www.example.com/blog прокси перешли на http://blog.example.com.. Я посещаю http://blog.example.com/some/dir/foo.php, он отлично работает. Однако, если я перейду к http://www.example.com/blog/some/dir/foo.php,, это НЕ работает.
Какое правило я пропускаю?
Попробуйте заменить первые два правила на это правило:
RewriteCond %{HTTP_HOST} ^www\.example\.com$ RewriteRule ^blog/(.*) http://blog.example.com/$1 [P]