Мой сайт: 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]
перестает обрабатывать больше правил, если это правило соответствует.
Дополнительную информацию см. В документации .