使用.htaccess重定向到具有不同文件扩展名的移动页面

时间:2013-11-29 23:52:13

标签: apache .htaccess redirect mobile

我在www.domain.com创建了一个桌面网站,在m.domain.com创建了一个移动网站,并使用.htaccess将智能手机访问者重定向到后者:

# Mobile redirect #
RewriteEngine on
RewriteBase /

# prevent looping
RewriteCond %{HTTP_HOST} !^m.goldenhinde.com$

# if the browser accepts these mime-types, it's definitely mobile, or pretending to be
RewriteCond %{HTTP_ACCEPT} "text\/vnd\.wap\.wml|application\/vnd\.wap\.xhtml\+xml" [NC,OR]

# a bunch of user agent tests
RewriteCond %{HTTP_USER_AGENT} "sony|symbian|nokia|samsung|mobile|windows ce|epoc|opera" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "mini|nitro|j2me|midp-|cldc-|netfront|mot|up\.browser|up\.link|audiovox"[NC,OR]
RewriteCond %{HTTP_USER_AGENT} "blackberry|ericsson,|panasonic|philips|sanyo|sharp|sie-"[NC,OR]
RewriteCond %{HTTP_USER_AGENT} "portalmmm|blazer|avantgo|danger|palm|series60|palmsource|pocketpc"[NC,OR]
RewriteCond %{HTTP_USER_AGENT} "smartphone|rover|ipaq|au-mic,|alcatel|ericy|vodafone\/|wap1\.|wap2\.|iPhone|android"[NC]

RewriteCond %{HTTP_REFERER} !^http://(.*).goldenhinde.com/.*$ [NC]

# rewrite rules here
RewriteRule .? http://m.goldenhinde.com%{REQUEST_URI}  [L,R=302]

但是,我遇到的问题是桌面网站上的网页网址没有文件扩展名(例如 www.website.com/contact),而移动网站上的网址则包含.php后缀(例如 m.website.com/contact.php)。

当访问者在智能手机上输入www.website.com/contact等地址时,我希望将它们重定向到m.website.com/contact.php,但目前显然没有发生这种情况。在移动版本中包含文件扩展名。

您能告诉我可以添加到.htaccess文件的代码,以便桌面页面自动重定向到他们的移动版本。

提前感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:0)

将此规则添加到最后

RewriteCond %{HTTP_HOST} ^m.goldenhinde.com$ [NC]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ /$1.php [L,R=301]