我想使用.htaccess将移动用户的请求重定向到http://mydomain.com/video.html到http://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)
我错过了什么吗?
答案 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]