mobile site redirect to desktop version using .htaccess

后端 未结 3 1522
野的像风
野的像风 2020-12-12 00:42

I have a mobile site and it has just started a service for desktop users also. How do I use .htaccess to redirect users using the desktop to the desktop version of the site?

相关标签:
3条回答
  • 2020-12-12 00:52

    Try these rules in your .htaccess file:

    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]
    

    Update (combined with wordpress rules)

    # 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 will redirect with https status 302

    L will make last rule

    NE is for no escaping query string

    $1 is your REQUEST_URI

    0 讨论(0)
  • 2020-12-12 01:05

    I think the code below is target more accuracy at the desktop browsers. You can remove the 1st USER_AGENT line if you don't want to exclude IE 10 on touch based devices.

    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]
    

    All desktop browsers which are using Windows, Mac, Linux will be redirect to /desktop/.

    0 讨论(0)
  • 2020-12-12 01:15

    Were you wanting to redir to the www version of your site? Then change the

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

    to the following: (replace the www.example.com with your desktop site).

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

    regards

    seemore

    0 讨论(0)
提交回复
热议问题