Ir para conteúdo

POWERED BY:

Arquivado

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

lightfox

url amigável - .htaccess - 2 parâmetros

Recommended Posts

Olá

estou desenvolvendo um sistema de lições online.

tenho a página licoes.php que exibem os links das licoes, porem, eu utilizo um código para exibir as páginas no centro da index, mas queria que as lições fossem exibidas nessa mesma div, no lugar das outras..

 

mas vejam como é o meu codigo: [resumido]

 

index.php

<?php
ob_start();
if (!$_SESSION) session_start();

$atual          = (isset($_GET['pg'])) ? $_GET['pg'] : 'home';
$permissao  	= array('home','licoes','contato','404');

if(substr_count($atual, '/') > 0){
$atual  = explode('/', $atual);
$pagina = (file_exists($atual[0].'.php') && in_array($atual[0], $permissao)) ? $atual[0] : 'erro';
$id     = intval($atual[1]);
}else{
$pagina = (file_exists($atual.'.php') && in_array($atual, $permissao)) ? $atual : '404';
$id     = 0;
}
?>

<div id="conteudo">

<?php require("{$pagina}.php")?> 

</div>

nessa página de cima, eu listo o nome das paginas que são permitidas na div "conteudo".

 

meu .htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ index.php?pg=$1

Ou seja, quando digito: meusite.com/contato

a pagina de contato é exibida na div conteudo, sem problemas.

Quando eu digito: meusite.com/licoes

as lições cadastradas no banco sao exibidas também..

 

agora minha dúvida é que, quando estou dentro da pagina liçoes, cada lição tem 1 link, que vem de um campo "URL" cadastrado no banco.. faço a url amigavel de cada lição e salvo lá.. agora eu tenho que puxar as URLs amigaveis mas já não sei como fazer este link, pois na index.php, existe a array que mostra as páginas permitidas no site, então como eu faria para exibir as lições na mesma div "conteudo"??

 

do jeito que tenho meus arquivos, acredito que o final ficaria:

meusite.com/licoes&url=titulo-da-noticia

 

meu objetivo é fazer a url final ficar:

meusite.com/licoes/titulo-da-licao

ou entao pode tambem ser:

meusite.com/titulo-da-licao

 

mas não sei o que fazer na index e nem no .htaccess

alguém dá uma luz? rs

 

obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você quer simplesmente "implementar" isso o mais rápido possível, instale logo o Wordpress. Se quer aprender, então faça como está no Wordpress.

 

Coloque todo o tráfego apontado para o arquivo index.php

 

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

 

 

Use a variável $_SERVER['REQUEST_URI'] para verificar qual a página requisitada e faça a consulta no banco de dados para verificar se existe alguma página com aquela URL.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você quer simplesmente "implementar" isso o mais rápido possível, instale logo o Wordpress. Se quer aprender, então faça como está no Wordpress.

 

Coloque todo o tráfego apontado para o arquivo index.php

 

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

 

 

Use a variável $_SERVER['REQUEST_URI'] para verificar qual a página requisitada e faça a consulta no banco de dados para verificar se existe alguma página com aquela URL.

 

Desculpe, mas não me familiarizo nem um pouco com wordpress. Não gosto do gerenciamento que eles fazem e muito menos quando se trata de aparencia.

Prefiro ralar e aprender a desenvolver o meu próprio.

 

Não entendi muito bem a questão de redirecionar todo conteúdo para a index.

Como ficaria a minha index.php? Meu codigo redirecionando o conteudo para a div "conteudo" permanece lá?

 

No momento utilizo a url index.php?pg=pagina , com o htaccess que informei, fica: meusite.com/pagina. Ja está funcionando.

 

Mas o que eu quero é que TAMBEM funcione:

 

meusite.com/pagina/pagina2

que sem o access ficaria:

meusite.com/index.php?pg=pagina&url=pagina2

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que costumo fazer nos meus projetos é o seguinte:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ index.php?url=$1

 

O $_GET['url'] é tudo que eu preciso, se eu quisesse meusite.com.br/contato

echo $_GET['url'] //exibiria 'contato';

meusite.com.br/contato/novo

echo $_GET['url'] //exibiria  'contato/novo';

Daí é o seguinte

$url = explode('/', $url); //separa(explode) a string a partir dos '/' transformando em array
$param1 = $url[0]; //exibiria contato
$param2 = $url[1]; //exibiria novo

 

Não sei se entendeu o que quis dizer, caso não tenha entendido só perguntar!

Está bem simples ao meu ver, bem sugestivo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que costumo fazer nos meus projetos é o seguinte:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ index.php?url=$1

 

O $_GET['url'] é tudo que eu preciso, se eu quisesse meusite.com.br/contato

echo $_GET['url'] //exibiria 'contato';

meusite.com.br/contato/novo

echo $_GET['url'] //exibiria  'contato/novo';

Daí é o seguinte

$url = explode('/', $url); //separa(explode) a string a partir dos '/' transformando em array
$param1 = $url[0]; //exibiria contato
$param2 = $url[1]; //exibiria novo

 

Não sei se entendeu o que quis dizer, caso não tenha entendido só perguntar!

Está bem simples ao meu ver, bem sugestivo.

 

Legal, eu entendi o objetivo do codigo.. É isso mesmo que preciso, PORÉM...

Preciso adaptar isso aí ao meu codigo que exibe os conteudos na DIV="CONTEUDO" ... entendeu ?

 

O codigo ta no primeiro post, mas postarei aqui também:

 

<?php
ob_start();
if (!$_SESSION) session_start();

$atual          = (isset($_GET['pg'])) ? $_GET['pg'] : 'home';
$permissao      = array('home','licoes','contato','404');

if(substr_count($atual, '/') > 0){
       $atual  = explode('/', $atual);
       $pagina = (file_exists($atual[0].'.php') && in_array($atual[0], $permissao)) ? $atual[0] : 'erro';
       $id     = intval($atual[1]);
}else{
       $pagina = (file_exists($atual.'.php') && in_array($atual, $permissao)) ? $atual : '404';
       $id     = 0;
}
?>

<div id="conteudo">

<?php require("{$pagina}.php")?> 

</div>

 

como eu adaptaria para usar da forma que voce falou?

valeu mesmo!

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.