<?php
$host = $_SERVER['HTTP_HOST'];
$uri = $_SERVER['REQUEST_URI'];
//caso entrem em index.php vai retornar erro, para evitar páginas duplicadas
if($uri == '/index.php'){
$_GET['id']='404';
header('HTTP/1.1 404 Not Found');
require 'include/error.php';
exit;
}
//se entrarem na página principal (/), vai carregar o script da principal
//caso o request esteja vazio vai redirecionar para a principal (/)
if($uri=='/'){
require 'include/index_home.php';
exit;
}elseif(!$uri){
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://'.$host.'/');
exit;
}
//transforma as barras / dos links em traços -
//cada traço no nome dos nossos arquivos na pasta "include" significa uma barra/pasta
$uri_link = str_replace('/', '-', $uri);
$uri_string = substr($uri_link,1);
if(substr($uri_string, -1) == '-'){
$uri_string = substr($uri_string,0,-1);
}else{
//se o nome do arquivo não possuir uma barra / no fim, verifica se o arquivo em si existe, se existir redireciona para o arquivo com a barra (evitar páginas duplicadas)
$filename='include/'.$uri_string.'.php';
if (file_exists($filename)==true) {
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://'.$host.$uri.'/');
exit;
}
}
//aqui verificamos se o arquivo existe, se existir exibimos
//se não existir, carregamos a página de erro 404
$filename='include/'.$uri_string.'.php';
if (file_exists($filename)==true) {
require $filename;
}else{
$_GET['id']='404';
header('HTTP/1.1 404 Not Found');
require 'include/error.php';
exit;
}
?>
para usar, é simples:
basta criar uma pasta chamada "include", dentro dela proibir acesso externo por segurança e colocar os arquivos que serão carregados
detalhe, cada traço - no nome do arquivo equivale a uma barra.
agora vem a dúvida.
falta algo? esqueci de algum detalhe? a segurança do script esta boa?
pergunto por que esse mundo de header entre cliente e servidor ainda é um mistério pra mim.
Pergunta
RodrigoGomes
Bom dia, eu fiz um script pensando no SEO no meu site, decidi tornar os meus antigos links index.php?cat=register&id=faq em /register/faq/
Para isso, usei dois scripts bem resumidos em PHP e Htaccess que eu fiz, segue ambos:
.htaccess
.phppara usar, é simples:
basta criar uma pasta chamada "include", dentro dela proibir acesso externo por segurança e colocar os arquivos que serão carregados
detalhe, cada traço - no nome do arquivo equivale a uma barra.
agora vem a dúvida.
falta algo? esqueci de algum detalhe? a segurança do script esta boa?
pergunto por que esse mundo de header entre cliente e servidor ainda é um mistério pra mim.
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.