用htaccess移动网站的rewriterules

时间:2012-09-08 05:56:33

标签: .htaccess mod-rewrite mobile apache

我们有一个网站,我们几乎想出了如何将其重定向到m.domain.com,以防它从移动浏览器访问过。然而,我们陷入了两个条件,并且对这两个条件表示赞赏:

一个。它不是保持页面名称来自非index.html页面。就像移动设备上的访问者尝试访问www.domain.com/features.html一样,它应该转发到m.domain.com/features.html,但它会转到m.domain.com

湾主站点上的某些页面不在移动网站上。因此,存在一个问题,当移动设备上的用户访问其中一个特定网页时,例如www.domain.com/user_guide.html,在尝试访问Android时会获得404。我认为需要为每个页面制定一条规则,将它们从转发到移动设备的代码中排除,而不是保持网址正常。

1 个答案:

答案 0 :(得分:0)

不知道你到目前为止实际得到了什么,我会随机采取刺:

对于:

RewriteCond %{HTTP_USER_AGENT} "android|blackberry|googlebot-mobile|iemobile|ipad|iphone|ipod|opera\ mobile|palmos|webos" [NC]
RewriteCond %{HTTP_HOST} !^m.domain.com$ [NC]
# for part b
RewriteCond %{QUERY_STRING} noredirect
RewriteRule ^(.*)$ http://m.domain.com/$1? [L,R]

对于b:

在您真正去过那里之前,无法知道某个网页是否存在于其他网站上。您需要做的是在移动域上,使用以下方法添加404处理程序:

ErrorDocument 404 /custom_404.php

并将其重定向到主域名,但在网址末尾添加?noredirect,以便重定向到移动设备代码不会创建循环。