Мобильный сайт перенаправить на настольную версию с помощью .htaccess - PullRequest
2 голосов
/ 18 апреля 2011

У меня есть мобильный сайт, и он только что запустил сервис для пользователей настольных компьютеров. Как использовать .htaccess для перенаправления пользователей, использующих рабочий стол, на версию сайта для настольных компьютеров?

Я пробовал простые сценарии PHP для перенаправления на домашнюю страницу настольной версии, но хотелось бы, чтобы перенаправление было немного более эффективным. Например, я хотел бы перенаправить http://site.com/subfolder/ на http://site.com/desktop/subfolder/, и решил, что с помощью .htaccess можно выполнить работу.

Я попробовал следующее, и это не похоже на работу.

RewriteCond %{REQUEST_URI} !^/desktop/.*$
RewriteCond %{HTTP_USER_AGENT} "!android|!blackberry|!ipad|!iphone|!ipod|!iemobile|!webos|!googlebot-mobile" [NC]
RewriteRule ^(.*)$ /desktop/ [L,R=302]

Пожалуйста, помогите!

Ответы [ 3 ]

1 голос
/ 18 апреля 2011

Попробуйте эти правила в своем файле .htaccess:

RewriteEngine on
Options +FollowSymlinks -MultiViews
RewriteCond %{REQUEST_URI} !^/desktop/ [NC]
RewriteCond %{HTTP_USER_AGENT} ^.*(MSIE.*Windows\ NT|Lynx|Safari|Opera|Firefox|Konqueror) [NC]
RewriteCond %{HTTP_USER_AGENT} !(^.*(Opera\ Mini|SymbianOS|Mobile)) [NC]
RewriteRule ^(.*)$ /desktop/$1 [L,R=302,NC]

Обновление (в сочетании с правилами WordPress)

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
Options +FollowSymlinks -MultiViews

RewriteCond %{THE_REQUEST} !^GET\s/wp-login\.php [NC]
RewriteCond %{REQUEST_URI} !^/(desktop/|wp-admin/|wp-login\.php) [NC]
RewriteCond %{HTTP_USER_AGENT} ^.*(MSIE.*Windows\ NT|Lynx|Safari|Opera|Firefox|Konqueror) [NC]
RewriteCond %{HTTP_USER_AGENT} !(^.*(Opera\ Mini|SymbianOS|Mobile)) [NC]
RewriteRule ^(.*)$ /desktop/$1 [L,R=302,NC]

RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/(desktop/|wp-admin/|wp-login\.php) [NC]
RewriteRule . /index.php [L]

</IfModule>
# END WordPress

R = 302 будет перенаправлять со статусом https 302

L создаст последнее правило

NE - нет экранирующей строки запроса

$ 1 - ваш REQUEST_URI

0 голосов
/ 18 июня 2015

Вы хотели перейти на www-версию своего сайта? Затем измените

RewriteCond %{REQUEST_URI} !^/(desktop/|wp-admin/|wp-login\.php) [NC]

к следующему: (замените www.example.com на ваш рабочий стол).

RewriteRule ^ http://www.example.com%{REQUEST_URI} [L,R=302] 

привет

seemore

0 голосов
/ 06 августа 2013

Я думаю, что приведенный ниже код нацелен на большую точность в настольных браузерах.Вы можете удалить 1-ю строку USER_AGENT, если не хотите исключать IE 10 на сенсорных устройствах.

RewriteCond %{REQUEST_URI} !^/desktop/.*$
RewriteCond %{HTTP_USER_AGENT} !Windows\ NT.+Touch [NC]
RewriteCond %{HTTP_USER_AGENT} Windows\ NT\ 6|Macintosh|Ubuntu|Linux\ (x86_64|i686)|CrOS [NC]
RewriteRule ^(.*)$ /desktop/ [L,R]

Все браузеры настольных компьютеров, использующие Windows, Mac, Linux, будут перенаправлены в / desktop /.

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