0

好的,所以我有一个网站mywebsite.net 我有 2 个子域mobi.mywebsite.netipad.mywebsite.net

使用 htaccess 重定向它适用于 iphone/android 但我想添加 ipad 并将其重定向到 ipad 子域这是我的代码:

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} iPhone
RewriteRule .* http://mobi.Mywebsite.net/ [R]

我为 ipad ( ) 找到了这个 rewritecond,RewriteCond %{HTTP_USER_AGENT} "iPad" [NC,OR]但是如果我添加它,我还可以添加另一个规则让它进入 ipad 子域吗?

4

2 回答 2

0

您不需要[OR]用于重写条件的标志,但如果您收到重定向循环,则需要检查主机名:

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} (iphone|android) [NC]
RewriteCond %{HTTP_HOST} !^mobi\. [NC]
RewriteRule ^ http://mobi.Mywebsite.net/ [L,R=301]

RewriteCond %{HTTP_USER_AGENT} ipad [NC]
RewriteCond %{HTTP_HOST} !^ipad\. [NC]
RewriteRule ^ http://ipad.Mywebsite.net/ [L,R=301]

请注意,这些会将所有请求重定向到mobiand的根目录ipad,请求的 URI 不会被保留。这意味着如果您在 ipad 上访问mywebsite.net/some/path/,您将被重定向到ipad.mywebsite.net/。如果你想让它被重定向到ipad.mywebsite.net/some/path/,你需要将上面的 2 个RewriteRule指令更改为:

RewriteRule ^(.*)$ http://mobi.Mywebsite.net/$1 [L,R=301]

RewriteRule ^(.*)$ http://ipad.Mywebsite.net/$1 [L,R=301]
于 2012-08-01T02:10:59.583 回答
0

您可以拥有任意数量的重写规则。您唯一需要注意的是您定义它们的顺序,但在您的情况下,这不会是一个问题。如果用户代理包含“iphone”或“android”字样,则以下内容将重定向到您的移动网站。如果用户代理包含“ipad”一词,它也会重定向到您的 ipad 站点。

RewriteEngine on

RewriteCond %{HTTP_USER_AGENT} "iPhone|android" [NC]
RewriteRule ^(.*)$ http://mobi.Mywebsite.net/ [R=301,L]

RewriteCond %{HTTP_USER_AGENT} "iPad" [NC]
RewriteRule ^(.*)$ http://ipad.Mywebsite.net/ [R=301,L]
于 2012-08-01T00:29:30.207 回答