通过移动设备访问时,我将我的网站重定向到移动网站。
这是htaccess代码:
RewriteCond %{QUERY_STRING} !^desktop
RewriteCond %{HTTP_USER_AGENT} android|avantgo|blackberry|iphone [NC]
RewriteRule ^ http://m.example.com%{REQUEST_URI} [R,L]
FTP的文件夹结构如下:
Images
ProImages
Mobile // All mobile site data into this
当我尝试从我的移动网站访问http://www.example.com/ProImages/abc.jpg
时,它不会显示,因为只要它尝试拨打www
,它就会重定向到m
。
我尝试使用../ProImages
,但这又没有解决问题。
任何人都可以提供帮助吗?
答案 0 :(得分:2)
您可以允许访问移动版的图像文件夹
RewriteCond %{QUERY_STRING} !^desktop
RewriteCond %{HTTP_USER_AGENT} android|avantgo|blackberry|iphone [NC]
RewriteCond %{REQUEST_URI} !^/ProImages/ [NC]
RewriteRule ^ http://m.example.com%{REQUEST_URI} [R,L]
答案 1 :(得分:1)
您可以从“移动”文件夹中为图像文件夹创建符号链接。
如果您有shell访问权限,请在Mobile文件夹中执行:
ln -s /path/to/document/root/ProImages ./ProImages
这样你可以调用Mobile/ProImages
,显示的内容来自父文件夹中的ProImages
。
答案 2 :(得分:1)
通常我会全部使用服务器进行重定向,但使用PHP进行重定向。我建议使用mobile_detect类。我的作品非常好,它几乎与所有内容相匹配。您甚至可以根据具体情况进行检测,例如在平板电脑或ipad上或您想要的任何内容。它非常容易使用,而不是使用.htaccess执行用户代理。所以你可以像下面那样做一个if语句,然后用php重定向。
以下是其网页的代码示例。 http://mobiledetect.net/
// Include and instantiate the class.
require_once 'Mobile_Detect.php';
$detect = new Mobile_Detect;
// Any mobile device (phones or tablets).
if ( $detect->isMobile() ) {
header('Location: http://m.example.com/'.$_SERVER["REQUEST_URI"]);
}
// Any tablet device.
if( $detect->isTablet() ){
}
// Exclude tablets.
if( $detect->isMobile() && !$detect->isTablet() ){
}
// Check for a specific platform with the help of the magic methods:
if( $detect->isiOS() ){
}
if( $detect->isAndroidOS() ){
}
// Alternative method is() for checking specific properties.
// WARNING: this method is in BETA, some keyword properties will change in the future.
$detect->is('Chrome')
$detect->is('iOS')
$detect->is('UC Browser')
// [...]
// Batch mode using setUserAgent():
$userAgents = array(
'Mozilla/5.0 (Linux; Android 4.0.4; Desire HD Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19',
'BlackBerry7100i/4.1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/103',
// [...]
);
foreach($userAgents as $userAgent){
$detect->setUserAgent($userAgent);
$isMobile = $detect->isMobile();
$isTablet = $detect->isTablet();
// Use the force however you want.
}
// Get the version() of components.
// WARNING: this method is in BETA, some keyword properties will change in the future.
$detect->version('iPad'); // 4.3 (float)
$detect->version('iPhone') // 3.1 (float)
$detect->version('Android'); // 2.1 (float)
$detect->version('Opera Mini'); // 5.0 (float)
// [...]