Мобильный переадресация с использованием htaccess

Мой сайт: example.com

Моя мобильная версия: m.example.com

Страница профиля – example.com/profile или m.example.com/profile

Или отправьте страницу example.com/posts или m.example.com/posts

URL-адрес мобильной версии похож. Итак, как перенаправить ту же страницу? Например: пользователь идет (из facebook) в example.com/posts, но он использует мобильное устройство, поэтому, как перенаправить через .htaccess в m.example.com/posts

Я видел эту угрозу , но я путаюсь создавать правильные правила.

Благодаря 🙂

Ваш вопрос аналогичен этому вопросу , за исключением того, что вы хотите перенаправить пользователя. Сначала вам нужен список мобильных пользовательских агентов. Я не собираюсь предлагать список, но я думаю, вы должны найти список, который вам подходит.

Затем вы хотите перейти в ваш файл .htaccess и добавить что-то вроде этого:

RewriteCond %{HTTP_USER_AGENT} ^(user-agent1|user-agent2|user-agent3|etc)$ RewriteCond %{HTTP_HOST} !^m\.example\.com$ RewriteRule ^(.*)$ http://m.example.com/$1 [R,L] 

Первый RewriteCond содержит все пользовательские агенты, которые вы хотите перенаправить. Помните, что это регулярное выражение, поэтому вам нужно избегать любых специальных символов! Второй RewriteCond проверяет, не является ли хост уже m.example.com . Если мы не будем проверять это, мы создадим бесконечный цикл, перенаправляющийся на тот же URL снова и снова. RewriteRule сам по себе соответствует всем именам хоста (и до строки запроса) и перенаправляет их на мобильный сайт. $1 заменяется первой группой захвата в регулярном выражении в первом аргументе RewriteRule . Флаг [R] в этом случае не нужен (ссылки с http:// всегда будут перенаправлены), но пусть Apache знает, что он должен сделать внешнюю временную перенаправление на новый url. Флаг [L] перестает обрабатывать больше правил, если это правило соответствует.

Дополнительную информацию см. В документации .