htaccess重定向到移动版的子文件夹和https for desktop

时间:2018-04-11 04:54:35

标签: .htaccess redirect https

我有一个移动版网站。

使用.htaccess我正在尝试将移动用户重定向到这样的子文件夹:

https://www.example.com/mobile

我还需要将所有人重定向到“https:www”,如下所示:

https://www.example.com

我已经看到很多将网站重定向到其移动版本的示例,但是,所有这些示例都使用子域而不是子文件夹。

当我尝试将两个重定向放在一起时,它会被循环播放,所以我宁愿不在生产服务器上进行如此多的测试,这就是为什么我想知道是否有人在这里遇到了同样的问题。

任何帮助都将非常感激。

我已经解决了。我使用此代码重定向到https和www https://stackoverflow.com/questions/13977851/htaccess-redirect-to-https-www

似乎我必须包含进行移动验证的https。

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]

我不知道它是否太长,但它确实有效。对于移动版本,使用子文件夹而不是子域名是一个好习惯吗?

0 个答案:

没有答案