我使用 Apache 的 mod_rewrite 根据移动用户的 http_user_agent 将他们重定向到我的移动网站。但是并非所有页面都有移动版。此外,移动页面以 .html 结尾,“完整”页面以 .shtml 结尾。
这是一些伪代码。
用户是否有特定的HTTP_USER_AGENT?
有移动页面吗?
如果是,就带他们去那里。如果不是,则无需重定向。
答案1
重写条件允许反向引用[0]捕获RewriteRule中的组。
RewriteCond %{HTTP_USER_AGENT} Mobile
RewriteCond $1.html -f
RewriteRule ^(.*)\.shtml$ $1.html [R]
[0] 实际上更像是前向引用……
答案2
最好将此发布在网站管理员部分。但我猜您想要的是类似以下内容的内容?
<script language=javascript>
<!--
if ((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i))) {
location.replace("http://url-to-send-them/iphone.html");
}
-->
</script>
有很多网站可以帮助你做到这一点 -http://www.abeautifulsite.net/blog/2011/11/detecting-mobile-devices-with-javascript/
只需简单地将脚本添加到您想要检测的页面上,无需预先检查网站页面是否存在。
答案3
有什么方法可以使用 php 来做到这一点,然后你就可以这样做;
<?php
$THEPAGE = 'WHATEVER THE URL YOU WANT IT TO BE';
$page = file_get_contents("$THEPAGE");
if(strstr($page, '404'))
{
}
else
{
header('Location: ' .$THEPAGE .'\')';
}
?>