Перенаправление .htaccess для Blackberry не работает - PullRequest
0 голосов
/ 20 сентября 2010

Я пытаюсь перенаправить пользователей Blackberry на мой мобильный сайт, выполнив:

# redirect for blackberry users
RewriteCond %{HTTP_USER_AGENT} ^.BlackBerry.$
RewriteRule ^(.*)$ http://www.domain.com/m/ [R=301]

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

Кстати, мой .htaccess содержит только это.

Редактировать .Htaccess в корне моего сервера.

Ответы [ 2 ]

2 голосов
/ 20 сентября 2010

Если это не единственное правило в вашем файле .htaccess, у вас может возникнуть проблема, из-за которой более позднее правило испортит ваш редирект.Для немедленного перенаправления необходимо включить флаг L.

Я также подозреваю, что ваше регулярное выражение для пользовательского агента, вероятно, не подходит для ввода, с которым вы тестируете, поскольку два .соответствует только одному символу по обе стороны от слова "BlackBerry".Также было бы неплохо защититься от цикла перенаправления с проверкой, чтобы убедиться, что вы уже в /m/ (хотя, если у вас есть директивы mod_rewrite в файле .htaccess в этом каталоге, это не важно).

Собрав все это вместе, мы получим что-то вроде следующего:

# Check for x-wap-profile/Profile headers
RewriteCond %{HTTP:x-wap-profile} !^$ [OR]
RewriteCond %{HTTP:Profile}       !^$ [OR]
# Check for BlackBerry anywhere in the user agent string
RewriteCond %{HTTP_USER_AGENT}    BlackBerry [NC]
# Make sure we're not in /m/ already
RewriteCond %{REQUEST_URI}        !^/m/
RewriteRule ^ http://example.com/m/ [R=301,L]

Вы также можете захотеть, чтобы RewriteRule было ...

RewriteRule ^.*$ http://example.com/m/$0 [R=301,L]

...если в каталоге /m/ указано то же содержимое (но для мобильных устройств).

1 голос
/ 20 сентября 2010

Убедитесь, что ваш BlackBerry не находится в «режиме эмуляции», когда он передает пользовательский агент для IE или Firefox вместо BlackBerry.Вы можете проверить это на экране опций браузера.

Лучшим способом решения этой проблемы было бы создание правила перезаписи на заголовках "x-wap-profile" и / или "profile", которые мобильный браузер должен всегдаотправь точно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...