Ir para conteúdo

Arquivado

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

Perfect Lion

URLs amigáveis

Recommended Posts

tem que setar o .htacess para o caminho correto, e tem que criar um arquivo <SEM_NOME>.htaccess e salva-lo no document root

Compartilhar este post


Link para o post
Compartilhar em outros sites

#LoadModule rewrite_module modules/mod_rewrite.so#AddModule mod_rewrite.c(httpd.conf) tire o ' # ' destas linhas salve e reinicie o apache.

Compartilhar este post


Link para o post
Compartilhar em outros sites

consegui fazer parcialmente :P/> alterei algumas coisas no código que sem as alterações não funcionam...

 

.htaccess

# << URLs Amigaveis<IfModule mod_rewrite.c>RewriteEngine OnRewriteBase /RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule .(/)?$ /index.php</IfModule># >> URLs Amigaveis

index.php

<?php$gets = explode("/",str_replace(strrchr($_SERVER["REQUEST_URI"], "?"), "", $_SERVER["REQUEST_URI"]));array_shift($gets);if(file_exists("includes/" . $gets[0] . ".php")){require ("includes/" . $gets[0] . ".php");}else{echo "Teste";}?>

ai criei uma página pra listar alguns dados de um db.. tudo ok

 

<?														include"config.php";$sql = mysql_query("SELECT * from jogos");$total = mysql_num_rows($sql);if ($total>0) {while ($file = mysql_fetch_array($sql)) {extract($file);echo "																												<a href='http://www.site.org/artigo/nome/$nome/jogo_id/$jogo_id'>$nome</a><br>";}} else {echo "Não existem jogos cadastrados";}?>

porém sempre aparece que não existe nada cadastrado no db

 

<?phpinclude"config.php";$jogo_id=$_GET['jogo_id'];$sql = mysql_query("SELECT * FROM jogos WHERE jogo_id='$jogo_id'");$total = mysql_num_rows($sql);if ($total>0) { $dados = mysql_fetch_array($sql); extract($dados);echo "$nome - $id - $swf<br>"; } else { echo "Nenhum produto foi encontrado"; } ?>

o que estou fazendo de errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que você fez de errado foi não entender direito como o negocio funciona... eu disse que funciona normal o GET e POST ceto? se você está usando GET então você tem que colocar http://www.site.org/artigo/nome/$nome...d=$jogo_id

 

para que esse esquema ai funfe da maneira que você quer você não tem que usar o $_GET e sim a variavel $gets

 

ai no retorno faça isso:

 

<?phpinclude"config.php";$jogo_id=$gets[4]$sql = mysql_query("SELECT * FROM jogos WHERE jogo_id='$jogo_id'");$total = mysql_num_rows($sql);if ($total>0) {$dados = mysql_fetch_array($sql);extract($dados);echo "$nome - $id - $swf<br>";} else {echo "Nenhum produto foi encontrado";}?>

 

=)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou com um problema no meu site que é o seguinte:

(desculpe, mas sou novo no assunto e gosto de perguntar)

 

Tem uma pasta com arquivos para download, só para usuarios. Mas se alguém digita a url completa, tipo www.meusite.com.br/downloads/news/arquivo.doc consegue baixar sem precisar autenticar o usuario.

Me disseram que o arquivo .htacces é a soluçäo. Entendi como usa-lo para url amigáveis, mas como usa-lo para proteger o diretório?

 

O que preciso fazer:

 

-proteger arquivos do diretório contra pessoas que väo direto ao arquivo.

-se algué digitar www.meusite.com.br/dowmloads/news ser enviado direto para a página index.php

 

Alguém pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma possivel solução para não ter que ficar colocando o endereço completo da páginas, que eu não testei mais eu acho que da certo.

a possivel solução é colocar um <base href="http://www.seusite.com.br/" /> entre as tags <head></head> da página.

e como eu cheguei a essa conclusão?

vocês podem perceber que o site do iMasters usa URLs amigáveis,

então por curiosidade resolvi dá uma olhada no html da página, e vi que não há nenhum link completo na página, então lembrei que essa tag <base> pode ser usada para isso, ai eu constatei que no html do site iMasters tinha essa tag.

 

é isso ai, caso eu esteja errado, por favor me corrijam.

lembrando que eu não testei, OK?

Compartilhar este post


Link para o post
Compartilhar em outros sites

carlaohsv -> Certta resposta =)Só falatava isso ai eu havia esquecido isso agora com essa sua dica o sistema de URLs amigaveis fico completo ;)/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

o apache não tá reconhecendo o .htaccess.....

 

se eu abro assim: http://localhost/site/artigos/asdasd

 

com o htaccess em artigos da erro 404....

 

se eu escrevo o htaccess cheio de erros também dá o 404 ao invez do internal server error :S

 

LoadModule rewrite_module modules/mod_rewrite.so não tá comentado. o que eu faço?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o apache não tá reconhecendo o .htaccess.....se eu abro assim: http://localhost/site/artigos/asdasdcom o htaccess em artigos da erro 404....se eu escrevo o htaccess cheio de erros também dá o 404 ao invez do internal server error :SLoadModule rewrite_module modules/mod_rewrite.so não tá comentado. o que eu faço?

consegui.o AllowOverride estava none na pasta htdocsmudei pra All e pego
<Directory "C:/Apache/htdocs">	# coments....	AllowOverride All</Directory>

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que esse AllowOverride faz?

 

o apache não tá reconhecendo o .htaccess.....

 

se eu abro assim: http://localhost/site/artigos/asdasd

 

com o htaccess em artigos da erro 404....

 

se eu escrevo o htaccess cheio de erros também dá o 404 ao invez do internal server error :S

 

LoadModule rewrite_module modules/mod_rewrite.so não tá comentado. o que eu faço?

consegui.

 

o AllowOverride estava none na pasta htdocs

 

mudei pra All e pego

 

<Directory "C:/Apache/htdocs">	# coments....	AllowOverride All</Directory>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salve galera! Este é meu .htaccess:

 

RewriteEngine OnRewriteRule ^categorias/([^/\.]+)/?$ site.php?i=1,$1RewriteRule ^subcategorias/([^/\.]+)/?$ site.php?i=2,$1RewriteRule ^produtos/([^/\.]+)/?$ site.php?i=4,$1RewriteRule ^carrinho/controle/?$ site.php?i=6RewriteRule ^carrinho/lista/?$ site.php?i=7RewriteRule ^carrinho/lista/([^/\.]+)/?$ site.php?i=7,$1RewriteRule ^cliente/login/?$ site.php?i=8 [QSA,L]RewriteRule ^cliente/login/([^/\.]+)/?$ site.php?i=8,$1RewriteRule ^institucional/([^/\.]+)/?$ site.php?i=3,$1

Só tem um "pobrema" aí: quando é digitado www.site.com.br/produto, ele acessa o arquivo produto.php, dentro da raiz. Como desabilito isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, como vao todos?

 

eu to com um prob , meu .htaccess funciona, mas parcialmente, vejma so

 

.htaccess

<IfModule mod_rewrite.c>RewriteEngine OnRewriteBase /RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule ^([^/]*)/([^/]*)/([^/]*)$ ?local=$1&acao=$2&id=$3</IfModule>
como se pode ver ele trata ate 3 variaveis.... ate ai tdo bem.... , mas:

 

1 - se a url vai com as tres variaveis, ele funciona. ex.: http://www.sinprocred.com/clientes/listar/1

 

2 - se a url vai com menos variaves, uma ou duas, no caso. ex.: http://www.sinprocred.com/clientes ele retorna pagina nao localizada.

 

questao: o que eu devo acrescentar nesse codigo pra que funcione tanto com 3, 2 ou uma variavel?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Query Strings ? Certo ?Òtimo artigo, gostei bastante, isso é meio cansativo, aqui fica bem legal de aprender.Até Mais...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa TArde a Todos ;)/>

 

Uma dúvida,

solicitei ao meu servidor essa alteração e eles ficaram de estudar se nao iria causar nenhum impacto no servidor e em outro sites que estão hospedado.

 

gostaria de saber se nao tem como eu fazer isso se alterar essa linha na configuração.

 

#LoadModule rewrite_module modules/mod_rewrite.so

No aguardo...

Vlw ;)/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kra isso não implica em nada no servidor. ele só dá mais funções para você poder trabalhar com reescrita de url.E no meu ver acho que num rola se fazer algo sem esse modulo ae habilitado =/

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.