移动网站使用.htaccess重定向到桌面版

时间:2011-04-18 04:15:24

标签: .htaccess mobile desktop redirect

我有一个移动网站,它刚刚为桌面用户启动了一项服务。如何使用.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 个答案:

答案 0 :(得分:1)

在.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

答案 1 :(得分:0)

我认为以下代码的目标是桌面浏览器更准确。如果您不想在基于触摸的设备上排除IE 10,则可以删除第一个USER_AGENT行。

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 /.

答案 2 :(得分:0)

您是否想要重定位到您网站的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