将站点重定向到移动版本,Google 移动设备友好测试出错
Redirect a site to a Mobile version, error with Google Mobile-Friendly Test
我有以下网址:
domain.fr (desktop site)
domain.fr/m/ (mobile site)
- 两个 url "point" 使用 "canonical" 或 "alternate" 相互连接。
- 我们可以毫无问题地访问这些网址。
我想将移动设备上的用户重定向到:域。fr/m/
在PHP,我试过:
$useragent=$_SERVER['HTTP_USER_AGENT'];
if(preg_match('/(android|bb\d+).+mobile|....',substr($useragent,0,4))){header('Location: http://domain.fr/m/');}
问题:
当我使用 Google 移动设备友好测试检查 domain.fr 时,我收到此错误消息:
(就像 Google 无法检查这是否适合移动设备)
如果我删除上面的 PHP,Google 可以进行测试,但说 domain.fr 不是用户友好的。
如何重定向到移动网站,我认为这是 PHP 代码的问题,知道吗?
我认为您的代码中存在错误,请尝试分析您的网络服务器的日志。
我在 Google 移动设备友好测试和 Google 页面速度中进行了测试,一切正常。
Nginx 日志:
127.0.0.1 - - [22/Aug/2015:16:29:16 +0300] "GET /test.mobile.php HTTP/1.1" 301 18 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12F70 Safari/600.1.4 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
127.0.0.1 - - [22/Aug/2015:16:29:18 +0300] "GET / HTTP/1.1" 200 17211 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12F70 Safari/600.1.4 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
PHP:
$useragent = $_SERVER['HTTP_USER_AGENT'];
$devices = ['iphone', 'android'];
if ( arrayInString( $devices, strtolower( $useragent ) ) ) {
header("HTTP/1.0 301 Moved Permanently");
header("Location: http://mysite.ua" . strtolower( $_SERVER['REQUEST_URI'] ) );
die("Redirect");
}
function arrayInString( $inArray , $inString ) {
if( is_array( $inArray ) ) {
foreach( $inArray as $e ) {
if( strpos( $inString , $e ) !== false )
return true;
}
return false;
} else {
return ( strpos( $inString , $inArray ) !== false );
}
}
但我建议使用 nginx 进行此类重定向
@Julien 首先,不要关闭Link标签!
<link rel="alternate" href="http://luckeo.fr/m/" media="only screen and (max-width: 640px)">
备用 "link" 它只是 SEO link,它不会重定向任何用户。
并且,您必须将 google 和其他用户重定向到移动版本。
阅读这篇文章:https://developers.google.com/webmasters/mobile-sites/mobile-seo/common-mistakes/faulty-redirects?hl=fr
你从 google 测试中获得了 "dismis",因为你的 php 重定向中有一些错误,请尝试下面的重定向
好的,我找到了解决方案:
php 重定向是正确的,但代码已针对移动和桌面网站执行。
我必须只为 domain.fr 进行重定向,否则重定向将无限期(在移动站点上也会执行),因此 Google 发送了此错误消息 "dismiss"。 . 不容易看懂..
我有以下网址:
domain.fr (desktop site)
domain.fr/m/ (mobile site)
- 两个 url "point" 使用 "canonical" 或 "alternate" 相互连接。
- 我们可以毫无问题地访问这些网址。
我想将移动设备上的用户重定向到:域。fr/m/
在PHP,我试过:
$useragent=$_SERVER['HTTP_USER_AGENT'];
if(preg_match('/(android|bb\d+).+mobile|....',substr($useragent,0,4))){header('Location: http://domain.fr/m/');}
问题: 当我使用 Google 移动设备友好测试检查 domain.fr 时,我收到此错误消息:
(就像 Google 无法检查这是否适合移动设备)
如果我删除上面的 PHP,Google 可以进行测试,但说 domain.fr 不是用户友好的。
如何重定向到移动网站,我认为这是 PHP 代码的问题,知道吗?
我认为您的代码中存在错误,请尝试分析您的网络服务器的日志。
我在 Google 移动设备友好测试和 Google 页面速度中进行了测试,一切正常。
Nginx 日志:
127.0.0.1 - - [22/Aug/2015:16:29:16 +0300] "GET /test.mobile.php HTTP/1.1" 301 18 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12F70 Safari/600.1.4 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
127.0.0.1 - - [22/Aug/2015:16:29:18 +0300] "GET / HTTP/1.1" 200 17211 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12F70 Safari/600.1.4 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
PHP:
$useragent = $_SERVER['HTTP_USER_AGENT'];
$devices = ['iphone', 'android'];
if ( arrayInString( $devices, strtolower( $useragent ) ) ) {
header("HTTP/1.0 301 Moved Permanently");
header("Location: http://mysite.ua" . strtolower( $_SERVER['REQUEST_URI'] ) );
die("Redirect");
}
function arrayInString( $inArray , $inString ) {
if( is_array( $inArray ) ) {
foreach( $inArray as $e ) {
if( strpos( $inString , $e ) !== false )
return true;
}
return false;
} else {
return ( strpos( $inString , $inArray ) !== false );
}
}
但我建议使用 nginx 进行此类重定向
@Julien 首先,不要关闭Link标签!
<link rel="alternate" href="http://luckeo.fr/m/" media="only screen and (max-width: 640px)">
备用 "link" 它只是 SEO link,它不会重定向任何用户。 并且,您必须将 google 和其他用户重定向到移动版本。 阅读这篇文章:https://developers.google.com/webmasters/mobile-sites/mobile-seo/common-mistakes/faulty-redirects?hl=fr
你从 google 测试中获得了 "dismis",因为你的 php 重定向中有一些错误,请尝试下面的重定向
好的,我找到了解决方案:
php 重定向是正确的,但代码已针对移动和桌面网站执行。
我必须只为 domain.fr 进行重定向,否则重定向将无限期(在移动站点上也会执行),因此 Google 发送了此错误消息 "dismiss"。 . 不容易看懂..