2010-07-24 4 views
0

Я пытаюсь перенаправить все страницы и поддомены, переведя их на m. субдомен, если он не начинается с m. но он полностью терпит неудачу. где я иду не так?Перенаправление поддоменов на мобильную версию

example.com или www.example.com -> m.example.com test.example.com -> m.test.example.com images.example.com -> m.images.example.com m.example.com -> не перенаправлять m.test.example.com -> не перенаправлять

RewriteCond% {HTTP_HOST}^м ([.]. *) ?. example.com $

RewriteCond% {HTTP_HOST}^(. *) ?. example.com $

RewriteRule (. *) http://m%2.example.com/ $ 1 [R, L]

+0

Не получается, что ничего не происходит, или что-то еще не так? Кроме того, являются ли они единственными правилами, которые вы имеете в файле .htaccess? –

+0

Это рекурсивно, начинается m. затем мм. затем mmm. плюс субдомены не появляются в переписывании. – Paul

ответ

1

Я установил свои правила на своем тестовом сервере, но не смог реплицировать рекурсивную переадресацию. При этом, вы должны изменить его так, он выглядит следующим образом:

RewriteCond %{HTTP_HOST} !^m([.].*)?\.example\.com$ 
RewriteCond %{HTTP_HOST} ^(.*)?\.example\.com$ 
RewriteRule (.*) http://m.%1.example.com/$1 [R,L] 

Это будет по крайней мере решить проблему относительно недостающих поддоменов. (Вы потеряли точку после m, а группа захвата, представляющая субдомен, - %1)

Так как я не смог воспроизвести вторую половину проблемы, хотя, я не уверен, что может вызвать ее , Если у вас есть больше информации, которая, по вашему мнению, может помочь, я готов дать ей еще один шанс.

Смежные вопросы