我希望从桌面登陆domain.com
的访问者转移到domain.com/desktop
,同时隐藏" desktop
"部分在URL。
最后,如果他们从手机访问domain.com
,我希望将其转移到domain.com/m
。在这种情况下," m"可以留下我猜,我不在乎。
我的问题是;是.htaccess或我的public_html的index.php中的重定向?
编辑:我的/ desktop /目录的htaccess包含:
RewriteEngine On
RewriteRule ^inc/.*$ index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
根.htaccess
包含以下内容:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$
RewriteRule !^desktop/ /desktop%{REQUEST_URI} [L]
我的public_html' index.php
包含:
include 'mobile_detect.php';
$detect = new Mobile_Detect();
if ($detect->isMobile()) {
header("Location: http://domain.com/m"); exit;
}else{
header("Location: http://domain.com/desktop"); exit;
}
我觉得我做错了什么,我无法弄清楚它是什么。帮助
非常感谢。
答案 0 :(得分:1)
查看this duplicate answer - 它会将移动用户重定向到m.domain.com
,这可能是一个更好的系统,因为您可以使用另一个VirtualHost来完全分离移动网站,因此它不会导致任何重定向循环。
至于重定向到/desktop
,为什么有必要?您可以将其简化为两个VirtualHosts:
(VirtualHost配置通常存储在/etc/apache2/sites-enabled/000-default.conf
)
<VirtualHost *:80>
ServerName m.domain.com
DocumentRoot /var/www/mobile/
</VirtualHost>
<VirtualHost *:80>
ServerName domain.com
ServerAlias www.domain.com
DocumentRoot /var/www/desktop/
</VirtualHost>