使用htaccess仅为移动用户重定向特定页面请求

时间:2011-08-11 17:32:36

标签: .htaccess

我想使用.htaccess将移动用户的请求重定向到http://mydomain.com/video.htmlhttp://mydomain.com/mobile/index.html

目前它是一个Wordpress网站,所以我的.htaccess文件中已经存在一些Wordpress内容。

以下是我现在所拥有的:

AddHandler php5-script .php

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

# BEGIN Mobile redirect for the video 
<IfModule mod_rewrite.c>
RewriteEngine on

  # stuff to let through (ignore)
  RewriteCond %{REQUEST_URI} "/mobile/" 
  RewriteRule (.*) $1 [L]
  #
RewriteCond %{REQUEST_URI} !^/html/video.html.*$
RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC]
RewriteRule ^(.*)$ /mobile/index.html [L,R=302]
</IFModule>
# END Mobile redirect

它目前正在为所有页面重定向我的iPad,而不是我想要的页面重定向(video.html)

我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

试试这个:

# BEGIN Mobile redirect for the video 
<IfModule mod_rewrite.c>
    RewriteEngine On
    # stuff to let through (ignore)
    RewriteRule ^mobile/ - [L]
    # redirect /video.html to /mobile/index.html for mobile browsers
    RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC]
    RewriteRule ^video\.html$ /mobile/index.html [L,R=302]
</IfModule>
# END Mobile redirect

1。因为你有WordPress,所以最好在WordPress块之前放置这个块。

2。如果你在这个块中有如此少的重写规则,则不需要# stuff to let through (ignore)规则(特别是如果你在WordPress之前放置整个块)。但由于我不确定您的网站是如何运作的,所以我留给您测试。

3。我看到你在RewriteRule中使用(.*)模式,然后在RewriteCond中使用一个额外的模式来进行实际的URL匹配。没有必要 - 你可以在RewriteRule中完成所有这些。

例如,这个:

RewriteCond %{REQUEST_URI} "/mobile/"
RewriteRule (.*) $1 [L]

很容易被

取代
RewriteRule ^mobile/ - [L]