Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Nícolas Luís Huber

[Resolvido] arquivo .htaccess

Recommended Posts

Olá Comunidade iMaters. Estou com dúvida na execução de arquivos .htacess. No meu sistema estou usando QueryString e estou querendo fazer uma página de erro se a URL for inválida. Para quem não está entendendo eu quero fazer com o site NetShoes (http://www.netshoes.com.br). Se digitar por exemplo http://www.netshoes.com.br/nao-existe ele vai para uma página de erro. Quero fazer a mesam coisa, porém tenho dúvidas aonde faço esta configurações se é no .htacess ou junto com o script da Query String, na verdade não tenho ideia de como fazer. Alguém tem alguma solução para mim fazer esta validação de URL?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvi fazer algumas mudanças no site para ficar melhor. Eu troquei as QueryString e estou usando URLs Amigáveis. Neste momento que surge o problema, como se trata de um sistema de administração a página index.php tem um sistema de login, que se for verdadeiro ele vai para a página painel.php. Como estou usando URLs Amigáveis ele acaba indo para www.sistema.com.br/painel. Até aqui está tudo certo, porém quero acrescentar mais 3 informações na URL como a página cadastrar.php ficando com a URL www.sistema.com.br/painel/cadastrar.

Como dentro do Cadastrar.php vai conter a informações para cadastrar novo usuários e produtos, a página cadastrar tem que pgar por $_GET[]; para exibir os dados de cadastrar usuários ou produtos.

Resumindo quero passar a seguinte QueryString para URL Amigável:

 

Dê:

www.sistema.com.br/index.php?file=painel&cadastrar=novo-produto

 

Para:

www.sistema.com.br/painel/cadastrar/novo-produto

 

Alguém pode me ajudar nesta confusão, segue os códigos que estou usando:

 

Index.php (A primeira verificação é apenas para incluir a página inicial.php)

<?php
$url = $_GET['url'];
$urlE = explode('/', $url);
$arquivos = $urlE['0'];
$arquivos_sistema = $urlE['1'];
$sub_arquivos = $urlE['2'];

$paginas = array('painel', 'cadastrar');

if(empty ($url)){
include 'inicial.php';
exit;
}

if(isset($arquivos) && in_array($arquivos, $paginas)){
 include "$arquivos.php";

}else{
include '404.php';
exit;
}
?>

 

.htaccess

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1

 

Este código funciona tudo certinho para incluir o painel.php, porém para incluir a outra página cadastrar.php não estou conseguindo e nem a terceira parte da URL. Alguém tem uma solução por favor???? :seta:

 

Alguém tem alguma dica ou solução???

 

Depois de passar algumas horas aqui fazendo tentativas e erros, cheguei a um código quase como eu quero, o único problema é que estou com problema para pegar resultados da URL, segue meu código para entender melhor:

 

.htaccess

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php?file=$1

 

index.php

<?php
$url = $_GET['file'];
$urlE = explode('/', $url);
/* Pega valores da URL */

$arquivos = $urlE['0'];
$arquivos_Painel = $urlE['1'];
$sub_arquivos_Painel = $urlE['2'];
/* Pega valores de Array para páginas */

$paginas = array('painel', 'cadastrar');
/* Array de páginas cadastradas */

// VALIDAÇÕES COM INCLUDES
if(!isset ($url)){
 include 'inicial.php';
 exit;
}

if(isset($arquivos_Painel) && in_array($arquivos_Painel, $paginas)){
 include "$arquivos_Painel.php";

}elseif(isset($arquivos) && in_array($arquivos, $paginas)){
 include "$arquivos.php"; 

}else{
 include '404.php';
 exit;
}
?>

 

cadastrar.php

<h3>Página para cadastrar novos produtos</h3>
<?php
$url = $_GET['file'];
$urlE = explode('/', $url);

if(isset($urlE['2']) == 'novo'){
echo '<h1>Funcionado OKAY!</h1>';	
}else{
echo '<h1>Cadastrar novo usuário okay</h1>';
}
?>

 

Até aqui o caminho para chegar é sistema/painel/cadastrar, sendo que neste endereço ele faz o include da página cadastrar.php que determinei em meu index.php. Porém eu quero incluir mais um parâmetro na URL por exemplo (sistema/painel/cadastrar/novo-produto), mas este novo parâmetro não irá fazer nenhuma ação apenas ficar na URL, para eu usar ele na página cadastrar.php para diferenciar entre cadastrar novo produto e cadastrar novo usuário, como vocês podem ver no código da página cadastrar.php. Só que não está funcionando pois ele não consegue pegar da URL o último parâmetro. Alguém sabe como eu posso prosseguir? :clap: :clap:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tópico Resolvido, eu consegui resolver o problema que faltava, segue como eu solucionei apenas modificando a página categoria.php:

 

<?php
$url = $_GET['file'];
$urlE = explode('/', $url);
?>
<br />
<br />
<br />
<?php
if(isset($urlE['2']) && ($urlE['2']) == 'novo.html'){
echo 'Está funcionado a Super Global $_GET[]';

}elseif(isset($urlE['2']) && ($urlE['2']) == 'usuario.html'){
echo 'Cadastre um novo usuário está funcionando';

}else{
 include '404.php';
 exit;	
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.