使用htaccess进行移动设备检测

时间:2013-04-30 13:41:35

标签: .htaccess symfony1 symfony-1.4

我使用以下链接创建了一个移动应用程序:

www.mysite.com/mobile.php

我的问题是在我使用网站www.mysite.com的链接时检测移动版本,并使用htaccess将我重定向到我的移动应用www.mysite.com/mobile.php的链接。

我注意到该应用程序是使用Symfony1.4

开发的

在我的移动应用程序的所有布局中,我在顶部使用此html代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

                 

编辑:

这是我修改后的htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} ^(%2d|-)[^=]+$ [NC]
RewriteRule ^(.*) $1? [L]
</IfModule>

 Options +FollowSymLinks +ExecCGI

 <IfModule mod_rewrite.c>
 RewriteEngine On

 # uncomment the following line, if you are having trouble
 # getting no_script_name to work
 RewriteBase /

 # we skip all files with .something
 #RewriteCond %{REQUEST_URI} \..+$
 #RewriteCond %{REQUEST_URI} !\.html$
 #RewriteRule .* - [L]

 # we check if the .html version is here (caching)
 RewriteRule ^$ index.html [QSA]
 RewriteRule ^([^.]+)$ $1.html [QSA]
 RewriteCond %{REQUEST_FILENAME} !-f

 # no, so we redirect to our front web controller
 RewriteRule ^(.*)$ index.php [QSA,L]

 RewriteEngine on
 RewriteCond %{HTTP_USER_AGENT} iphone|ipad|android|blackberry [NC]
 RewriteRule ^$ /mobile.php

 </IfModule>

但它不起作用!

我不希望一些非常不合理的事情,我希望改变上面的htaccess来实现那个场景:

我访问了链接www.mysite.com(2个案例中的相同链接):

1-默认情况下,在前端控制器index.php上查看我的主站点htaccess点。

2-如果我访问移动版本,htaccess会检测到它并指向前控制器mobile.php,将我直接重定向到应用移动版。

1 个答案:

答案 0 :(得分:1)

您可以使用RewriteCond %{HTTP_USER_AGENT}

检测移动设备
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} iphone|ipad|android|blackberry [NC]
RewriteRule ^$ /mobile.php