0

为基于移动的重定向寻找 .htaccess 代码。计划是让用户每 24 小时被重定向一次到一个名为 yyy.org 的网站。

我需要检查它们是否符合移动标准。如果有,请检查他们是否有 cookie。如果两者都是真的,给他们一个 cookie 并将他们重定向到 yyy.org 站点。

重写条件:

    $RewriteCond %{HTTP_USER_AGENT} (mobile|android|blackberry|brew|cldc|docomo|htc|j2me|micromax|lg|midp|mot|motorola|netfront|nokia|obigo|openweb|opera.mini|palm|psp|samsung|sanyo|sch|sonyericsson|symbian|symbos|teleca|up.browser|vodafone|wap|webos|windows.ce) [NC]

其他可能的代码:这还没有完成:

   RewriteBase /
RewriteEngine On

# Check if mobile=1 is set and set cookie 'mobile' equal to 1
RewriteCond %{QUERY_STRING} (^|&)mobile=1(&|$)
RewriteRule ^ - [CO=mobile:1:%{HTTP_HOST}:1440]

# Check if mobile=0 is set and set cookie 'mobile' equal to 0
RewriteCond %{QUERY_STRING} (^|&)mobile=0(&|$)
RewriteRule ^ - [CO=mobile:0:%{HTTP_HOST}:1440]

# cookie can't be set and read in the same request so check
RewriteCond %{QUERY_STRING} (^|&)mobile=0(&|$)
RewriteRule ^ - [S=1]

# Check if this looks like a mobile device
RewriteCond %{HTTP:x-wap-profile} !^$ [OR]
RewriteCond %{HTTP_USER_AGENT} (mobile|android|blackberry|brew|cldc|docomo|htc|j2me|micromax|lg|midp|mot|motorola|netfront|nokia|obigo|openweb|opera.mini|palm|psp|samsung|sanyo|sch|sonyericsson|symbian|symbos|teleca|up.browser|vodafone|wap|webos|windows.ce) [NC]
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
RewriteRule ^ http://yyyy.com%{REQUEST_URI} [R,L]

这可能吗,剩下的代码是什么?

4

1 回答 1

0

如果他们是移动客户端,您可以将它们重定向到本地脚本,然后检查脚本中的 cookie 并根据 cookie 值执行操作,但是作为用户,我发现我被重定向到我没有请求的页面很烦人

您也可以将 rewritecond 用于这样的 cookie:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_COOKIE} lang=([^;]+) [NC]
RewriteRule ^(.*)$ /$1?lang=%1 [NC,L,QSA]

有关 cookie 和 htacces 的更多信息:http ://www.askapache.com/htaccess/htaccess-fresh.html#Cookie_Manipulation_Tests_mod_rewrite

于 2013-03-02T14:14:02.770 回答