Mostrar mensagens com a etiqueta Header. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta Header. Mostrar todas as mensagens

Verificar se um site ou página existe e permite ser acessado

Maneira de verificar se uma página está acessível ou não, ou seja, online ou ofline, existe ou inexistente.

Para criar links com mais tranqüilidade eu queria um script para ver se uma página de site ou blog podia ser acessada, se ela não estivesse com problema de algum erro, 404 por ser removida, ou outro, até mesmo site que tivesse deixado sido excluído, duas coisas bem comuns hoje. Encontrei no Scriptbrasil.com.br um script quase perfeito para isso, fiz algumas modificações nele, mas, se allow_url_fopen estiver desabilitada nas configurações do seu servidor, aí o script talvez não funcionará.
<?php

$Url = ("http://meuphpbasico.blogspot.com/2012/10/fazer-direcionamento-301-em-php-simples.html");

@$ChecarUrl = fopen($Url,"r");

if($ChecarUrl){//Se verificado e existente

$UrlChecada = "A página ".$Url." está ativa";
}else{//Se não conseguir verificar ou não existir

$UrlChecada = "Não conseguimos verificar ".$Url;
};

echo $UrlChecada;
?>

Uso de verificação de Url para link de redirecionamento

Um uso bem util seria para criar links externos, ou seja, para outros sites e assim evitar links quebrados, já que alguns sites ou páginas são excluídos, aí o que aconteceria seria o redirecionamento apenas se a página existir, se ela estiver indisponível você pode dar a opção da pessoa visitar a página inicial de seu site, pesquisar, prosseguir mesmo assim, etc...

Assim você evita links quebrados que prejudicam seu site perante sites de busca e aos olhos do visitante que invés de ir para uma página não encontrada tem a oportunidade de continuar no seu site.

checa-direciona.php

<?php
//recebe a url que será testada e para onde irá se correta
$Url = $_GET['go'];

@$ChecarUrl = fopen($Url,"r");
if($ChecarUrl){//Se verificado e existente

header("HTTP/1.1 301 Moved Permanently");
header("Location: $Url");

}else{//Se não conseguir verificar ou não existir

$UrlChecada = "Não conseguimos verificar ".$Url."<br>Você quer <a href='http://meuphpbasico.blogspot.com.br'>ir a página inicial, clique aqui</a><br>Quer prosseguir a página não detectada <a href='".$Url."' rel='nofollow'>clique aqui</a>";
};

echo $UrlChecada;
?>


Aí bastaria criar um link para essa página que ela checaria e faria o redirecionamento, exemplo:
http://MEU-SITE.com/checa-direciona.php?go=http://meuphpbasico.blogspot.com

Com um pouco mais de criatividade é possível até tirar mais proveito desse tipo de página, caso haja uma página não encontrada, algum tipo de monitoramento, incluir algum anúncio...

Por medida de segurança, talvez seja aconselhável algum filtro para o valor recebido via GET antes de usar ele, mas o intuito desse post é apenas demonstrar a principal característica ou função do script.

A arroba @ no casos acima são para evitar os tipos de mensagem quando a página não existir:

Warning: fopen() [function.fopen]: php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/content/0000/html/my.php on line 14

Warning: fopen(http://www.meu-site-xx.com) [function.fopen]: failed to open stream: php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/content/xxx/html/ver/x.php on line

Warning: fopen(http://meu-site-xx.com) [function.fopen]: failed to open stream: php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/content/00000/html/...

Como criar arquivo de redirecionamento em Php simples?

Como pode fazer redirecionamento 301 em Php bem simples.

como criar Redirecionamento em php simples 301



Esse código é bem simples e você pode colocar em qualquer página Php para criar uma página de redirecionamento simples

Exemplos de código de redirecionamento Php simples


<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://meuphpbasico.blogspot.com");
?>


Um pouco mais avançado você pode criar uma unica página que use $_GET para pegar a Url e redirecionar para outras páginas conforme a Url que você digitar na barra de endereços ou criar um link, bom para redirecionamentos automatizados e atá fazer com que seja nofollow, claro que, nesse caso deve criar um diretório e usar o robots para nofollow o diretório

Exemplos de código de redirecionamento Php 'avançado'


redirect.php

<?php
// Recebe os dados, no caso Url com http//: ou https
$VaiPara=$_GET['go'];

header("HTTP/1.1 301 Moved Permanently");
// e redirecionar
header("Location: $VaiPara");
?>


http://MEU-SITE.com/directorio-x/redirect.php?go=http://meuphpbasico.blogspot.com

http://MEU-SITE.com/directorio-x/redirect.php?go=https://yahoo.com

Bastaria você criar uma diretório em seu site e dentro dela um arquivo, pode ser com nome sugerido redirect.php e copiar o endereço acima, mas substituir o nome dos site e talvez diretório e lembrando que para a Url que será direcionado precisa inserir o http:// ou Https se for o caso, ou seja, Url completa.

Exemplos 2 de código de redirecionamento avançado Php

A vantagem desse código abaixo é que os endereços podem ficar mais curtos, bom se for criar muitos links, mas redireciona apenas para Http e não é possível Https, se bem que alguns sites fazem seu próprio redirecionamento...

redirect2.php

<?php
// Recebe os dados, no caso Url sem http//:
$VaiPara=$_GET['go'];

header("HTTP/1.1 301 Moved Permanently");
// acrescenta Http e os dados e redireciona
header("Location: http://$VaiPara");
?>


http://MEU-SITE.com/directorio-x/redirect2.php?go=meuphpbasico.blogspot.com

Bastaria você criar uma pasta em seu site e dentro dela um arquivo, pode ser com nome sugerido redirect2.php e copiar o endereço acima, mas substituir o nome dos sites e lembrando que para a Url que vai ir não deve inserir o http:// porque ele já está no código

Como eu falei acima, se a intenção é deixar essa Url mais curta, você pode renomear redirect2.php para index.php daí poderia ficar assim:

http://MEU-SITE.com/directorio-x?go=meuphpbasico.blogspot.com