使用htaccess重定向到移动版本,尊重域名

时间:2013-10-02 07:37:08

标签: regex apache .htaccess redirect mobile

我有一个拥有多个域名的网站,即:

www.site.co.uk
www.site.ru
www.site-german.de

移动版本位于/mobile/

所以,

如何从当前域重定向到/mobile/路径?

我相信我需要检查域是否是列出的域之一,当前路径不是移动的,对吧? (对于正则表达式,我真的很糟糕。)

这就是我现在所拥有的:

RewriteCond %{HTTP_HOST} ^www\.site\.com [NC]
    RewriteCond %{HTTP_USER_AGENT} "android|blackberry|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC]
    RewriteRule ^(.*)$ http://site.com/mobile/$1 [L,R=302]

哪个有效,但正如您所看到的那样,它不会检查当前路径是否为'/ mobile /'并且它不会检查其他域..

任何提示?

1 个答案:

答案 0 :(得分:2)

可能通过添加RewriteCond来检查当前路径,使用否定正则表达组 (?!...),如下所示:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} "ipod|iphone|ipad|android|palm|blackberry|googlebot-mobile" [NC]
RewriteCond %{REQUEST_URI} ^(?!/mobile/)
RewriteRule ^(.*)  /mobile/$1   [QSA,L,R=301]