Назад | Перейти на главную страницу

Как я могу проверить наличие URL-адреса перед перенаправлением на него?

Я использую Apache mod_rewrite для перенаправления мобильных пользователей на мой мобильный сайт на основе их http_user_agent. Однако не у всех страниц есть аналог для мобильных устройств. Также мобильные страницы заканчиваются на .html, а "полные" страницы заканчиваются на .shtml.

Вот какой-то псевдокод.

Есть ли у пользователя определенный HTTP_USER_AGENT?

Есть ли мобильная страница?

Если да, возьмите их туда. В противном случае перенаправление не требуется.

RewriteCond позволяет обратным ссылкам [0] захватывать группы в RewriteRule.

RewriteCond %{HTTP_USER_AGENT} Mobile
RewriteCond $1.html -f
RewriteRule ^(.*)\.shtml$ $1.html [R]

[0] На самом деле больше похоже на прямую ссылку ...

Можете ли вы использовать php для этого?

<?php
$THEPAGE = 'WHATEVER THE URL YOU WANT IT TO BE';
$page = file_get_contents("$THEPAGE");
if(strstr($page, '404'))
{
}
else
{
header('Location: ' .$THEPAGE .'\')';
}
?>

Наверное, лучше всего разместить это в разделе для веб-мастеров. Но я полагаю, вы хотите что-то вроде следующего?

<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/

Просто добавьте скрипт на страницы, на которых вы хотите обнаруживать, нет необходимости предварительно проверять наличие страницы сайта.