Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde!
Tenho um htaccess sendo:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php
Pois bem, ele faz tirar a extensão PHP dos arquivos
Exemplo:
www.meusite.com.br/planos.php
ficará:
www.meusite.com.br/planos
Eu gostaria de saber se tem como editar esse arquivo pra ficar assim:
www.meusite.com.br/hospedagem/planos
sem precisar criar uma pasta chamada "hospedagem" ..
>
Boa tarde!
Tenho um htaccess sendo:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php
Pois bem, ele faz tirar a extensão PHP dos arquivos
Exemplo:
www.meusite.com.br/planos.php
ficará:
www.meusite.com.br/planos
Eu gostaria de saber se tem como editar esse arquivo pra ficar assim:
www.meusite.com.br/hospedagem/planos
sem precisar criar uma pasta chamada "hospedagem" ..
O que você precisa fazer é pegar os valores da url
$params = explode("/", str_replace(strrchr($_SERVER["REQUEST_URI"], "?"), "", $_SERVER["REQUEST_URI"]));
para cada $params será uma parte do link
ex: www.meusite.com/busca/resultado-da-minha-busca
$params[0] = busca
$params[1] = resultado-da-minha-busca
pega o valor
nesse caso vamos dizer que existisse a página busca.php
então o código ficaria assim
if(file_exists($params[0].".php")) {
include($params[0].".php");
} else {
include("404.php"); // Página de erro caso tenha criado
}
espero ter ajudado!! =DD
>
O que você precisa fazer é pegar os valores da url
$params = explode("/", str_replace(strrchr($_SERVER["REQUEST_URI"], "?"), "", $_SERVER["REQUEST_URI"]));
para cada $params será uma parte do link
ex: www.meusite.com/busca/resultado-da-minha-busca
$params[0] = busca
$params[1] = resultado-da-minha-busca
pega o valor
nesse caso vamos dizer que existisse a página busca.php
então o código ficaria assim
if(file_exists($params[0].".php")) {
include($params[0].".php");
} else {
include("404.php"); // Página de erro caso tenha criado
}
espero ter ajudado!! =DD
Tacno eu quero aprender a fazer dessa forma, mas não entendi como devo fazer, você poderia dar uma explicação mais detalhada...
Obrigado.
//Pega url
$url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : getenv("REQUEST_URI");
/* O array $dados terá tantos componentes quanto forem digitados pelo usuario por ex.: se ele digitar:
* http://.../eventos/eventos, o array $dados terá 3 componentes: $dados[0]/$dados[1]/$dados[2],
* $dados = explode('/',$url); separa os dados, removendo a '/' do inicio da string
*/
$dados = explode('/',$url);
/* Recupera os dados digitados pelo usario*/
$pasta = isset($dados[1]) ? $dados[1] : "";
$arquivo = isset($dados[2]) ? $dados[2] : "";
$dadoUm = isset($dados[3]) ? $dados[3] : "";
$dadoDois = isset($dados[4]) ? $dados[4] : "";
$dadoTres = isset($dados[5]) ? $dados[5] : "";
$dadoQuatro = isset($dados[6]) ? $dados[6] : "";
$dadoCinco = isset($dados[7]) ? $dados[7] : "";
$dadoSeis = isset($dados[8]) ? $dados[8] : "";
$dadoSete = isset($dados[9]) ? $dados[9] : "";
$dadoOito = isset($dados[10])? $dados[10]: "";
$dadoNove = isset($dados[11])? $dados[11]: "";
$dadoDez = isset($dados[12])? $dados[12]: "";
/********************* INCLUI AS PÁGINAS DO SITE ******************/
//Verifica se o arquivo existe
if(file_exists("$pasta/$arquivo.php") || file_exists("$pasta/$arquivo/$dadoUm.php")){
//Se o arquivo n for um diretorio inclui do contrario da erro
include_once((is_file("$pasta/$arquivo.php")) ? "$pasta/$arquivo.php" : "$pasta/$arquivo/$dadoUm.php");
//Verifica se o arquivo existe//Se o arquivo n for um diretorio inclui do contrario da erro
include_once((is_file("$pasta.php")) ? "$pasta.php" : "principal.php");
}else{
//Do contrario mosta a pagina de erro
include_once("erros/erro_404.php");
}
/**************** IMPRIME AS PAGINAS NA TELA **********************/
Exemplo:
se o usuario digitar http://seusite.com.br/texto/meutexto/3/como-recuperar-os-dados
fica assim:
$pasta = texto;
$arquivo = meutexto;
$dadoUm = 3;
$dadoDois = como-recuperar-os-dados;Ell Aves, vlw pela dica, vou fazer e posto o resultado...
Ell Alves, veja bem, estou tentando fazer e ñ tá dando certo, vou mostrar minha estrutura
http://www.izabellenossa.com.br/lojanossa/index.php
No index eu uso uma uso faço as chamadas para as páginas:
foreach ($_REQUEST as $___opt => $___val) {
$$___opt = $___val;
}
if(empty($pg)) {
include("nav/lista_categoria.php");
}
elseif(substr($pg, 0, 4)=='http' or substr($pg,
0, 1)=="/" or substr($pg, 0, 1)==".")
{
echo '<br><font face=arial size=11px><br><b>A página não existe.</b><br>Por favor selecione uma página a partir do Menu Principal.</font>';
}
else {
include("nav/$pg.php");
}
Eu uso link´s para chamar as páginas e nesse link eu coloco paramentros, tipo:
<a href="index.php?pg=lista_categoria&id=<?php echo $list['id']">Bolsas</a>
Então fiz dessa forma:
$url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : getenv("REQUEST_URI");
$dados = explode('/',$url);
$pasta = isset($dados[1]) ? $dados[1] : "teste";
$arquivo = isset($dados[2]) ? $dados[2] : "url";
$dadoUm = isset($dados[3]) ? $dados[3] : "amigavel";
Onde eu errei ?
>
//Pega url
$url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : getenv("REQUEST_URI");
/* O array $dados terá tantos componentes quanto forem digitados pelo usuario por ex.: se ele digitar:
* http://.../eventos/eventos, o array $dados terá 3 componentes: $dados[0]/$dados[1]/$dados[2],
* $dados = explode('/',$url); separa os dados, removendo a '/' do inicio da string
*/
$dados = explode('/',$url);
/* Recupera os dados digitados pelo usario*/
$pasta = isset($dados[1]) ? $dados[1] : "";
$arquivo = isset($dados[2]) ? $dados[2] : "";
$dadoUm = isset($dados[3]) ? $dados[3] : "";
$dadoDois = isset($dados[4]) ? $dados[4] : "";
$dadoTres = isset($dados[5]) ? $dados[5] : "";
$dadoQuatro = isset($dados[6]) ? $dados[6] : "";
$dadoCinco = isset($dados[7]) ? $dados[7] : "";
$dadoSeis = isset($dados[8]) ? $dados[8] : "";
$dadoSete = isset($dados[9]) ? $dados[9] : "";
$dadoOito = isset($dados[10])? $dados[10]: "";
$dadoNove = isset($dados[11])? $dados[11]: "";
$dadoDez = isset($dados[12])? $dados[12]: "";
/********************* INCLUI AS PÁGINAS DO SITE ******************/
//Verifica se o arquivo existe
if(file_exists("$pasta/$arquivo.php") || file_exists("$pasta/$arquivo/$dadoUm.php")){
//Se o arquivo n for um diretorio inclui do contrario da erro
include_once((is_file("$pasta/$arquivo.php")) ? "$pasta/$arquivo.php" : "$pasta/$arquivo/$dadoUm.php");
//Verifica se o arquivo existe//Se o arquivo n for um diretorio inclui do contrario da erro
include_once((is_file("$pasta.php")) ? "$pasta.php" : "principal.php");
}else{
//Do contrario mosta a pagina de erro
include_once("erros/erro_404.php");
}
/**************** IMPRIME AS PAGINAS NA TELA **********************/
Exemplo:
se o usuario digitar http://seusite.com.br/texto/meutexto/3/como-recuperar-os-dados
fica assim:
$pasta = texto;
$arquivo = meutexto;
$dadoUm = 3;
$dadoDois = como-recuperar-os-dados;
me interessei por esse exemplo,no meu caso pretendo passar 3 parametros pela url por exemplo:
noticia.php ( ou outro arquivo, por exemplo entretenimento.php)
titulo da noticia
id
como ficaria essa função??? o meu .access continuaria assim:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ([a-z0-9-]+)/([0-9]+)/?$ /news.php?titulo=$1&id=$2 [NC]
</IfModule>
Arquivo .htacess
#Indica qual é a pasta base de todo o conteudo
RewriteBase /
#Redireciona o erro
ErrorDocument 404 /erros/erro_404.php
ErrorDocument 500 /erros/erro_500.php
Dessa forma todas as paginas do seu site serão avertas no index.php.
>
Arquivo .htacess
#Indica qual é a pasta base de todo o conteudo
RewriteBase /
#Redireciona o erro
ErrorDocument 404 /erros/erro_404.php
ErrorDocument 500 /erros/erro_500.php
Dessa forma todas as paginas do seu site serão avertas no index.php.
mas a minha dúvida é exatamente como posso abrir os registros em arquivos diferentes, como por exemplo:
http://localhost/noticias.php?id=1
abrir: http://localhost/noticias/titulo/1'>http://localhost/noticias/titulo/1
ou ainda melhor: http://localhost/noticias/titulo
ou se o arquivo fosse entretenimento.php: http://localhost/entretenimento/titulo
Nesse exemplo de .htaccess seria necessário usar também aquele código php q você havia citado anteriormente?
>
mas a minha dúvida é exatamente como posso abrir os registros em arquivos diferentes, como por exemplo:
http://localhost/noticias.php?id=1
abrir: http://localhost/noticias/titulo/1'>http://localhost/noticias/titulo/1
ou ainda melhor: http://localhost/noticias/titulo
ou se o arquivo fosse entretenimento.php: http://localhost/entretenimento/titulo
Nesse exemplo de .htaccess seria necessário usar também aquele código php q você havia citado anteriormente?
Também tenho essa dúvida, e outra, dentro do index eu preciso fazer alguma referência ao .htaccess ?
>
mas a minha dúvida é exatamente como posso abrir os registros em arquivos diferentes
Vamos lá, suponha que tenhamos os seguintes diretorios:
seusite/
-- ver.php
-- todas.php
-- fimes.php
-- fotos.php
para ver todas as noticias, faz assim: http://seusite.com.br/noticias/todas
para ver as noticias individualmente, faz assim: http://seusite.com.b...rimeira-noticia
a mema coisa com o entretenimento:
http://seusite.com.b...enimento/filmes
http://seusite.com.b...tenimento/fotos
Agora se você quiser abrir um arquivo da raiz é só digitar: http://seusite.com.br/nome-do-arquivo
observe que qndo você digita http://seusite.com.br/ na verdade vai abrir http://seusite.com.br/principal (veja o codigo do meu segundo post)
OBS: Se você tiver testando localmente deve observar que no lugar de "seusite.com.br" dever colocar: localhost/pasta-onde-estao-os-arquivos
>
Nesse exemplo de .htaccess seria necessário usar também aquele código php q você havia citado anteriormente?
Sim.
>
Também tenho essa dúvida, e outra, dentro do index eu preciso fazer alguma referência ao .htaccess ?
Não
apesar de o RewriteEngine estar habilitado no meu apache (inclusive verifiquei pelo phpinfo();) ele tá dando o erro 404
>
O que você precisa fazer é pegar os valores da url
$params = explode("/", str_replace(strrchr($_SERVER["REQUEST_URI"], "?"), "", $_SERVER["REQUEST_URI"]));
para cada $params será uma parte do link
ex: www.meusite.com/busca/resultado-da-minha-busca
$params[0] = busca
$params[1] = resultado-da-minha-busca
pega o valor
nesse caso vamos dizer que existisse a página busca.php
então o código ficaria assim
if(file_exists($params[0].".php")) {
include($params[0].".php");
} else {
include("404.php"); // Página de erro caso tenha criado
}
espero ter ajudado!! =DD
Como vou incluir os parametros? onde coloco?
>
apesar de o RewriteEngine estar habilitado no meu apache (inclusive verifiquei pelo phpinfo();) ele tá dando o erro 404
como voce ta fazendo? Qual codigo ta usando?
>
como voce ta fazendo? Qual codigo ta usando?
eu inseri aquele código no arquivo q irá abrir, por exemplo ler.php
>
eu inseri aquele código no arquivo q irá abrir, por exemplo ler.php
Ve se tah assim:
codigo da pag index.php
//Pega url
$url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : getenv("REQUEST_URI");
/* O array $dados terá tantos componentes quanto forem digitados pelo usuario por ex.: se ele digitar:
* http://.../eventos/eventos, o array $dados terá 3 componentes: $dados[0]/$dados[1]/$dados[2],
* $dados = explode('/',$url); separa os dados, removendo a '/' do inicio da string
*/
$dados = explode('/',$url);
/* Recupera os dados digitados pelo usario*/
$pasta = isset($dados[1]) ? $dados[1] : "";
$arquivo = isset($dados[2]) ? $dados[2] : "";
$dadoUm = isset($dados[3]) ? $dados[3] : "";
$dadoDois = isset($dados[4]) ? $dados[4] : "";
$dadoTres = isset($dados[5]) ? $dados[5] : "";
$dadoQuatro = isset($dados[6]) ? $dados[6] : "";
$dadoCinco = isset($dados[7]) ? $dados[7] : "";
$dadoSeis = isset($dados[8]) ? $dados[8] : "";
$dadoSete = isset($dados[9]) ? $dados[9] : "";
$dadoOito = isset($dados[10])? $dados[10]: "";
$dadoNove = isset($dados[11])? $dados[11]: "";
$dadoDez = isset($dados[12])? $dados[12]: "";
/********************* INCLUI AS PÁGINAS DO SITE ******************/
//Verifica se o arquivo existe
if(file_exists("$pasta/$arquivo.php") || file_exists("$pasta/$arquivo/$dadoUm.php")){
//Se o arquivo n for um diretorio inclui do contrario da erro
include_once((is_file("$pasta/$arquivo.php")) ? "$pasta/$arquivo.php" : "$pasta/$arquivo/$dadoUm.php");
//Verifica se o arquivo existe
}elseif($pasta == "" && $arquivo == ""){
//Se o arquivo n for um diretorio inclui do contrario da erro
include_once((is_file("$pasta.php")) ? "$pasta.php" : "principal.php");
}else{
//Do contrario mosta a pagina de erro
include_once("erros/erro_404.php");
}
/**************** IMPRIME AS PAGINAS NA TELA **********************/
codigo do .htaccess
#Indica qual é a pasta base de todo o conteudo
RewriteBase /
#Redireciona o erro
ErrorDocument 404 /erros/erro_404.php
ErrorDocument 500 /erros/erro_500.php
codigo da pagina principal.php
<h1> Olá Mundo! </h1>
Coloca tudo na raiz e para acessar é so digitar: http://localhost/pasta-do-site/
>
Ve se tah assim:
codigo da pag index.php
//Pega url
$url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : getenv("REQUEST_URI");
/* O array $dados terá tantos componentes quanto forem digitados pelo usuario por ex.: se ele digitar:
* http://.../eventos/eventos, o array $dados terá 3 componentes: $dados[0]/$dados[1]/$dados[2],
* $dados = explode('/',$url); separa os dados, removendo a '/' do inicio da string
*/
$dados = explode('/',$url);
/* Recupera os dados digitados pelo usario*/
$pasta = isset($dados[1]) ? $dados[1] : "";
$arquivo = isset($dados[2]) ? $dados[2] : "";
$dadoUm = isset($dados[3]) ? $dados[3] : "";
$dadoDois = isset($dados[4]) ? $dados[4] : "";
$dadoTres = isset($dados[5]) ? $dados[5] : "";
$dadoQuatro = isset($dados[6]) ? $dados[6] : "";
$dadoCinco = isset($dados[7]) ? $dados[7] : "";
$dadoSeis = isset($dados[8]) ? $dados[8] : "";
$dadoSete = isset($dados[9]) ? $dados[9] : "";
$dadoOito = isset($dados[10])? $dados[10]: "";
$dadoNove = isset($dados[11])? $dados[11]: "";
$dadoDez = isset($dados[12])? $dados[12]: "";
/********************* INCLUI AS PÁGINAS DO SITE ******************/
//Verifica se o arquivo existe
if(file_exists("$pasta/$arquivo.php") || file_exists("$pasta/$arquivo/$dadoUm.php")){
//Se o arquivo n for um diretorio inclui do contrario da erro
include_once((is_file("$pasta/$arquivo.php")) ? "$pasta/$arquivo.php" : "$pasta/$arquivo/$dadoUm.php");
//Verifica se o arquivo existe
}elseif($pasta == "" && $arquivo == ""){
//Se o arquivo n for um diretorio inclui do contrario da erro
include_once((is_file("$pasta.php")) ? "$pasta.php" : "principal.php");
}else{
//Do contrario mosta a pagina de erro
include_once("erros/erro_404.php");
}
/**************** IMPRIME AS PAGINAS NA TELA **********************/
codigo do .htaccess
#Indica qual é a pasta base de todo o conteudo
RewriteBase /
#Redireciona o erro
ErrorDocument 404 /erros/erro_404.php
ErrorDocument 500 /erros/erro_500.php
codigo da pagina principal.php
<h1> Olá Mundo! </h1>
Coloca tudo na raiz e para acessar é so digitar: http://localhost/pasta-do-site/
quando faço isso e digito localhost/pastadosite ele carrega a página de erro que eu criei e quando digito localhost/pastadosite/principal ele não encontra a página e apresenta a página 404 padrão do apache
quando você fala para salvar o htaccess na pasta raiz, você fala na pasta do site não é?
>
quando você fala para salvar o htaccess na pasta raiz, você fala na pasta do site não é?
Sim.
Apaga ou comenta essa linha do .htaccess:
#Indica qual é a pasta base de todo o conteudo
RewriteBase /
fiz um teste jogando todos os arquivos diretamente na pasta htdocs e dessa forma o arquivo principal.php é carregado, porém quando tento acessar o arquivo /news/ler.php?idantes=40 dessa forma localhost/news/ler/40 não consigo.
já estou prestes a desistir, já segui todos os tutoriais q encontrei e dicas dadas e simplesmente não dá certo, existe mais alguma coisa q tem q ser instalado/habilitado no servidor para que funcione?? já estou achando q o problema é com meu apache.
consegui resolver o problema de página não encontrada habilitando o AllowOverride no apache porém ainda não consigo colocar a url amigável para funcionar.
Calma lá amigo não diga isso!!
Vamos lá..
Fiz um exemplo simples aqui, você está usando wamp? ou qual? o rewriterule já está ativado? Se não, ative. Se sim, prossiga..
index.php
<?php
$page = $_GET["page"];
if($page == 'principal') {$include = 'principal.php';}
else if($page == 'noticia') {$include = 'noticia.php';}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<p>Aqui é a página base "index.php" Esse texto entra em todas as páginas, aproveite e coloque um menu, topo e outras coisas que vão ser padrões em todo o site.</p>
<p>Include para página abaixo:</p>
<p> </p>
<?php include($include); ?>
</body>
</html>
principal.php
Essa é a página principal
noticia.php
Principal que puxa outra página pelo GET:<br>
<br>
<?php
$page_id = $_GET["id"].".php";
include($page_id);
?>
hoje-e-dia-acaba.php
Notícia Exemplo!
Entendendo:
Bom os dados para abrir as páginas serão resgatados via GET, confira abaixo o .htaccess
.htaccess
RewriteEngine On
RewriteRule principal index.php?page=principal
RewriteRule ^([^/])/([^/])$ index.php?page=$1&id=$2
Linha #1: Ligou o rewrite..
Linha #3: Indica o GET page para principal se este for a requisição.
Linha #4: Rescreve a url: index.php?page=noticia&id=hoje-e-dia-acaba .. para: noticia/hoje-e-dia-acaba
Bom, é lógico é a forma que fiz para busca a notícia é um exemplo, você utilizará a página notícia por exemplo para recuperar o id ou alias da notícia e busca no banco de dados.
A página index é simples, ela simplesmente registra o GET da requisição da variável $page, e então define nos ifs a qual página tal variável pertence, dando assim o endereço de sua página, que é mostrada através do include.. Simples não?
Qualquer mão ou dúvida, retorne..
abraço.
Baixe o exemplo que fiz, e copie para qualquer pasta do seu servidor, e teste as duas url:
/seuservidor/pastaqueesta/principal
/seuservidor/pastaqueesta/noticia/hoje-e-dia-acaba
Link: http://www.criartevix.com.br/externo/imasters/amigavel.rar
Abraço
>
Calma lá amigo não diga isso!!
Vamos lá..
Fiz um exemplo simples aqui, você está usando wamp? ou qual? o rewriterule já está ativado? Se não, ative. Se sim, prossiga..
index.php
<?php
$page = $_GET["page"];
if($page == 'principal') {$include = 'principal.php';}
else if($page == 'noticia') {$include = 'noticia.php';}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<p>Aqui é a página base "index.php" Esse texto entra em todas as páginas, aproveite e coloque um menu, topo e outras coisas que vão ser padrões em todo o site.</p>
<p>Include para página abaixo:</p>
<p> </p>
<?php include($include); ?>
</body>
</html>
principal.php
Essa é a página principal
noticia.php
Principal que puxa outra página pelo GET:<br>
<br>
<?php
$page_id = $_GET["id"].".php";
include($page_id);
?>
hoje-e-dia-acaba.php
Notícia Exemplo!
Entendendo:
Bom os dados para abrir as páginas serão resgatados via GET, confira abaixo o .htaccess
.htaccess
RewriteEngine On
RewriteRule principal index.php?page=principal
RewriteRule ^([^/])/([^/])$ index.php?page=$1&id=$2
Linha #1: Ligou o rewrite..
Linha #3: Indica o GET page para principal se este for a requisição.
Linha #4: Rescreve a url: index.php?page=noticia&id=hoje-e-dia-acaba .. para: noticia/hoje-e-dia-acaba
Bom, é lógico é a forma que fiz para busca a notícia é um exemplo, você utilizará a página notícia por exemplo para recuperar o id ou alias da notícia e busca no banco de dados.
A página index é simples, ela simplesmente registra o GET da requisição da variável $page, e então define nos ifs a qual página tal variável pertence, dando assim o endereço de sua página, que é mostrada através do include.. Simples não?
Qualquer mão ou dúvida, retorne..
abraço.
Baixe o exemplo que fiz, e copie para qualquer pasta do seu servidor, e teste as duas url:
/seuservidor/pastaqueesta/principal
/seuservidor/pastaqueesta/noticia/hoje-e-dia-acaba
Link: http://www.criartevix.com.br/externo/imasters/amigavel.rar
Abraço
muito obrigado pela atenção, aqui de fato funciona quando digito esses links porém quando digito somente http://localhost/ é apresentado um erro informando que falta um parametro seria possível carregar a página principal sem digitar mais nada??
e no caso de carregar arquivos que estão em um subdiretório como fazer?
Que bom que funcionou amigo.. veja abaixo..
quando digito somente http://localhost/ é apresentado um erro informando que falta um parametro seria possível carregar a página principal sem digitar mais nada??
Amigo apenas modifique as primeiras linhas do index.php
de:
$page = $_GET["page"];
if($page == 'principal') {$include = 'principal.php';}
Para:
$page = @$_GET["page"];
if($page == 'principal' || empty($page)) {$include = 'principal.php';}
e no caso de carregar arquivos que estão em um subdiretório como fazer?
Para cada diretório que você tiver alguma página, coloque dentro do diretório o seguinte arquivo:
.htaccess
RewriteEngine off
Qualquer coisa reporte.. rss
Abraço..
>
Que bom que funcionou amigo.. veja abaixo..
Amigo apenas modifique as primeiras linhas do index.php
de:
$page = $_GET["page"];
if($page == 'principal') {$include = 'principal.php';}
Para:
$page = @$_GET["page"];
if($page == 'principal' || empty($page)) {$include = 'principal.php';}
Para cada diretório que você tiver alguma página, coloque dentro do diretório o seguinte arquivo:
.htaccess
RewriteEngine off
Qualquer coisa reporte.. rss
Abraço..
cara uma das poucas pessoas q me fizeram entender um pouco sobre esse assunto foi você, a partir da sua ajuda juntei as informações e aos poucos estou avançando, adaptei o seguinte código no index.php:
<?php
$pasta = @$_GET["pasta"];
$arquivo = @$_GET["arquivo"];
$idantes = @$_GET["idantes"];
if($pasta == 'home' || empty($pasta)) {$include = 'home.php';}
elseif(file_exists("$pasta/$arquivo.php/$idantes")){
//Se o arquivo n for um diretorio inclui do contrario da erro
is_file("$pasta/$arquivo.php") ? $include = "$pasta/$arquivo.php" : $include = "$pasta/$arquivo/$idantes.php";
//Verifica se o arquivo existe
}elseif($pasta == "" && $arquivo == ""){
//Se o arquivo n for um diretorio inclui do contrario da erro
include_once((is_file("$pasta.php")) ? "$pasta.php" : "$include = home.php");
}else{
//Do contrario mosta a pagina de erro
include_once($include = '404.php');
}
?>
<?php include($include); ?>
e o .htaccess:
RewriteEngine On
RewriteRule home index.php?pasta=home
RewriteRule ^([^/])/([^/])$ index.php?pasta=$1&arquivo=$2&idantes=$3
em partes isso deu certo, pq quando digito "localhost/noticias/ler" ele acessa o arquivo ler.php direitinho porém quando insiro o terceito parametro $idantes ele dá arquivo não encontrado, o q pode estar errado??
Voce faz isso quando for recuperar os dados.