如何在重定向到 URL 之前测试其是否存在?

如何在重定向到 URL 之前测试其是否存在?

我使用 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 .'\')';
}
?>

相关内容