Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Galera, Boa Noite! Estou com problemas ao colocar a URL Amigável no meu site que estou desenvolvendo... Eu dei um "echo" na váriavel $_GET['pag'], e aparece sempre index.php, estou enrolado com isso.Se coloco qualquer coisa exemplo: www.site.com/fdfddf ele entra na principal... Abaixo os arquivos:
.htaccess
RewriteEngine On
RewriteRule %{REQUEST_FILENAME} !-f
RewriteRule %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?pag=$1
paginas
principal.php
erro.php
url.php
<?php
//a variavel atual, vai receber o que estiver na variável pag
//se não tiver nada, ela recebe o valor: principal“”
$atual = (isset($_GET['pag'])) ? $_GET['pag'] : 'principal';
//aqui setamos um diretório onde ficarão as páginas internas do site
$pasta = 'paginas';
//vamos testar se a variável pag possui alguma “/”
//ou seja, caso a url seja: /noticia/2
if (substr_count($atual, '/') > 0) {
//utilizamos o explode para separar os valores depois de cada “/”
$atual = explode('/', $atual);
/*testamos se depois do endereço do site, o valor da página é um arquivo existente
caso não exista, iremos atribuir o valor “erro” que será uma página de erro
personalizada que existirá dentro da pasta '$pasta', esse arquivo será incluido sempre que um endereço invalido for digitado */
$pagina = (file_exists("{$pasta}/" . $atual[0] . '.php')) ? $atual[0] : 'erro';
//ao que tiver depois da segunda “/” atribuiremos a variavel $id
$id = $atual[1];
//ao que tiver depois da terceira “/” atribuiremos a variavel $busca
$busca = @$atual[2];
} else {
$pagina = (file_exists("{$pasta}/" . $atual . '.php')) ? $atual : 'erro';
$id = 0;
$frame=0;
}
//com o uso de URL amigáveis se torna necessário que arquivos sejam chamados
//com o seu caminho completo, isso porque as imagens levam em consideração a URL
// ex: <img src=”<?=$siteUrl
?>
index.php
<?php require_once('url.php') ?>
<?php include $pasta.'/'.$pagina.'.php'; ?>
Se alguém poder dar uma olhada, ficarei Grato :D
>
Troca a regra no htaccess por esta abaixo
RewriteEngine on
RewriteBase /
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-l
RewriteRule (.+)$ index.php?pag=$1 [QSA,L]
Então troquei a regra por essa acima. Ao entrar no site "EXEMPLO" www.site.com ele entra na página padrão. Porém ao colocar qualquer coisa (Para entrar para página erro.php), ou então eu colocar uma outra página www.site.com/home ele não aparece nada fica em branco.
OBS: To usando o Wamp 2.5 e esta ativado o módulo para url amigáveis (Rewrite_module).
Bah cara, tirei o RewriteBase / na regra e funcionou direitinho! Valeu mesmo :D
Troca a regra no htaccess por esta abaixo
RewriteEngine on
RewriteBase /
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-l
RewriteRule (.+)$ index.php?pag=$1 [QSA,L]