我一直在研究我的问题,在很多方面重新措辞,但我似乎无法找到答案。它也可能是无法完成的,希望有人可以帮助我。我对.htaccess文件很新,但我一直在为我公司的公司网站创建一个移动网站。
我想要它做的是当您访问移动网站时,它会为您提供查看我们完整的公司网站或移动网站的选项。我将它重定向到该页面就好了,但是当您选择查看完整网站时,它会将您重定向回同一页面,而不是查看完整网站。我将移动网站放在子目录“www.companysite.com/mobile”中。我可以拥有它,以便当您选择查看完整网站的选项时,它不会将您重定向到移动网站吗?这是我现在的代码:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} android
RewriteRule .* http://companysite.com/mobile [R=301,L]
RewriteCond %{HTTP_USER_AGENT} BlackBerry
RewriteRule .* http://companysite.com/mobile [R=301,L]
提前谢谢!
答案 0 :(得分:1)
有些人喜欢使用cookies,但这有点棘手。一个示例解决方案是:
## Setting a cookie and variable for mobile users
RewriteRule .* - [E=IsMobile:false]
RewriteRule .* - [E=MobileCookie:false]
# Mobile Redirection
# Blackberry
#RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} "blackberry" [NC]
RewriteRule ^$ http://mobile.website/ [L,R=302]
# End Blackberry
# Mobile Redirection for IPhone
RewriteCond %{HTTP_USER_AGENT} "googlebot-mobile|iemobile|iphone|ipod|opera mobile" [NC]
RewriteRule ^$ http://mobile.website/ [L,R=302]
# End other IPhone
# Mobile Redirection for other Mobile
RewriteCond %{HTTP_USER_AGENT} "android|palmos|webos" [NC]
RewriteRule ^$ http://mobile.website/ [L,R=302]
# Set isMobile variable to true
RewriteRule .* - [E=IsMobile:true]
# End other Mobile
## Assume the mobile cookie is not set:
RewriteRule .* - [E=MobileCookie:false]
## Checking for mobile cookie
RewriteCond %{HTTP_COOKIE} gpf_mobileoff=true
RewriteRule .* - [E=MobileCookie:true]
## Combining IsMobile & MobileCookie to make one rule
RewriteRule .* - [E=ShowMobile:false]
RewriteCond %{ENV:IsMobile} ^true$
RewriteCond %{ENV:MobileCookie} !^true$
RewriteRule .* - [E=ShowMobile:true]
########## End - Custom redirects
当然,您需要在上面的代码中更改mobile.website并使用js或其他方法注入mobilecookie。
就个人而言,我更喜欢HTTP_REFERRER条件。
答案 1 :(得分:0)
我认为您也可以查看推荐人。如果引荐来源是您自己的站点,则不进行重定向。像
这样的东西RewriteCond %{HTTP_USER_AGENT} android
RewriteCond %{HTTP_REFERER} !yoursite\.com
RewriteRule .* http://companysite.com/mobile [R=301,L]
编辑: 我应该给出完整的解决方案:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (android|BlackBerry)
RewriteCond %{HTTP_REFERER} !yoursite\.com
RewriteRule .* http://companysite.com/mobile [R=301,L]