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

Modo de não precisar usar extensão de arquivo em Url? Com uso de Htaccess

Um modo de não precisar usar extensão em Url de arquivos de diversos tipos usando o .htaccess para permitir essa manipulação.

O formato do arquivo poderá ser ignorado mas não será totalmente oculto e nem mesmo bloqueado, apenas ficará a opção de usar ou não, pois o arquivo original não mudará.

Funciona para qualquer tipo de arquivo, php, css, js, mas um uso bem útil para mim foi no formato de imagens, ao criar uma página com várias imagens na qual eu coloquei o formato em minusculas e usei mais de um editor para criar as imagens um deles salvou com extensão em maiúscula, aí que resolvi usar a opção de remover a extensão no nome do arquivo ao escrevê-lo, assim também poupar alguns bytes no código html.

No caso abaixo seria para não precisar digitar .png para acessar as imagens nesse formato
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.png -f
RewriteRule ^([a-z,0-9,A-Z,_-]+)$ /$1.png

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.PNG -f
RewriteRule ^([a-z,0-9,A-Z,_-]+)$ /$1.PNG


O problema que eu tive, parece ter se estender para mais formatos de arquivos, ou pode ser que tal configuração seja padrão no servidor que testei, assim, se eu tivesse um outro arquivo com mesmo nome em mesmo diretório poderia me dar erro, sendo assim, esse código ainda me parece problemático, cabe ainda testes, mas, o problema será muito mais do uso de Url pelo webmaster ou pelo sistema por ele criado/gerenciado.

A última linha do código também poderia ser
RewriteRule ^(.*)$ $1.PNG

Sugestão de pesquisa .htaccess:
Uma função parecida, apenas para arquivos php, pode ser "AddType application/x-httpd-php" onde lhe permite usar outra extensão para arquivos php, ler mais

Uma função que poderia servir de "interpretar Url" maiúsculas e minusculas como igual seria "CheckCaseOnly on" ou "CheckSpelling On" mas, em muitos servidores não funciona, causa um erro 500 Internal Server Error

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