0

I have a website with a mobile version.

By using .htaccess I'm trying to redirect mobile users to a subfolder like this:

https://www.example.com/mobile

I also need to redirect everyone to "https:www" like this:

https://www.example.com

I've seen many examples for redirecting a website to it's mobile version, however, all of them use subdomains instead of subfolders.

When I try to put both redirections, it gets looped, so I'd rather not make so many tests on the production server, and that's why I was wondering if someone here went through the same issue.

Any help will be really appreciated.

I've already solved it. I used this code in order to redirect to https and www https://stackoverflow.com/questions/13977851/htaccess-redirect-to-https-www

It seems I had to include the https where the mobile validation is made.

RewriteEngine on
RewriteBase /

# Check if mobile=1 is set and set cookie 'mobile' equal to 1
RewriteCond %{QUERY_STRING} (^|&)mobile=1(&|$)
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^ - [CO=mobile:1:%{HTTP_HOST}]

# Check if mobile=0 is set and set cookie 'mobile' equal to 0
RewriteCond %{QUERY_STRING} (^|&)mobile=0(&|$)
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^ - [CO=mobile:0:%{HTTP_HOST}]

# cookie can't be set and read in the same request so check
RewriteCond %{QUERY_STRING} (^|&)mobile=0(&|$)
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^ - [S=1]

# Check if this looks like a mobile device
RewriteCond %{HTTP:x-wap-profile} !^$ [OR]
RewriteCond %{HTTP_USER_AGENT} "android|blackberry|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC,OR]
RewriteCond %{HTTP:Profile}       !^$

# Check to make sure we haven't set the cookie before
RewriteCond %{HTTP:Cookie}        !\mobile=0(;|$)
# Now redirect to the mobile site
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^ https://www.example.com/mobile%{REQUEST_URI} [R,L]

# Now redirect desktop visitors to www and https
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

I don't know if it's too long, but it works. Is it a good practice to use a subfolder instead of a subdomain for mobile version?

Sergio
  • 658
  • 1
  • 9
  • 22
  • can you update your question to include the script that you have tried? – Ben Apr 11 '18 at 05:45
  • I've already solved it. It seems I didn't include the "s" of httpS on the first mobile redirection. I'm posting the code anyway. – Sergio Apr 11 '18 at 09:02

0 Answers0