Jump to content


Photo

Query String E Url Amigável


  • Faça o login para participar
5 replies to this topic

#1 flexiy

flexiy

    Turista

  • Usuários
  • 56 posts
  • Sexo:Masculino

Posted 20/10/2008, 23:25

Olá senhores (:

vão me mandar para aqueles lugares, trancar meu tópico e usar a pesquisa. mas já estou a dias, e esta não é a primeira vez, tentando entender e fazer funcionar o tal esquema da URL amigavel. Simplesmente não consigo :#

porcurei muito no google também, mas praticamente todos os sites mostram o mesmo 'tutorial'.
consegui até chegar ao CodeIgniter, que infelizmente, também não consegui botar pra funcionar, não sei se é melhor/pior mais seguro ou mais pratico. e nem mesmo com o site que gera o conteudo do .htaccess eu consegui :s

também não manjo de php quase nada (le-se: praticamente nada), por isso favor não me mandem dar um explode num sei aonde hiauhauhhai

ao pratico, eu utilizo o ensinado aqui:
http://forum.wmonlin...hl=query string
___________________________________________________________________________

tenho URLs na seguinte forma no site:
www.site.com/?categoria=exemplo (www.site.com/index.php?categoria=exemplo)
www.site.com/?categoria=exemplo&sub=outro-exemplos
www.site.com/?categoria=exemplo&sub=outro-exemplos&tipo=videos
www.site.com/?categoria=exemplo&sub=outro-exemplos&tipo=videos&id=15

e dúvidas:
- os parametros .htaccess devem ser colocados só na pasta raiz?
- colocando ^(*)/(*)/(*)?$ teste.php?v1=$1&v2=$2&v3=$3 eu necessariamente tenho que estar utilizando as variaveis $2 e $3 ?

- SOMENTE o arquivo .htaccess precisa ser modificado?
como ficaria a configuração para o meu .htaccess. o que eu tenho é:

www.site.com/index/categoria/exemplo/sub/outro-exemplo/
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)/(.*)/$ /index.php?categoria=$1&sub=$2

- Como configurar o servidor apache local para funcionar com este recurso?
eu encontro apenas a linha do #LoadModule rewrite_module modules/mod_rewrite.so
mas a do #AddModule mod_rewrite.c não acho, e não sei onde adiciona-la

obs: o servidor no qual está hospedado está com o mod_rewrite habilitado.

Obrigado?

Edição feita por: flexiy, 21/10/2008, 10:57.


#2 fly2k

fly2k

    Super Veterano

  • Usuários
  • 2262 posts
  • Sexo:Não informado

Posted 21/10/2008, 10:01

Primeiro, o servidor está com o módulo mod_rewrite habilitado?
Quer aprender PHP? -> www.manjaphp.com.br
Tutoriais, código colaborativo (pastebin), curso de PHP, artigos e etc.

#3 flexiy

flexiy

    Turista

  • Usuários
  • 56 posts
  • Sexo:Masculino

Posted 21/10/2008, 11:09

(...)obs: o servidor no qual está hospedado está com o mod_rewrite habilitado.

Está habilitado sim.

Ok, consegui. Pelo menos parcialmente, ainda tenho dúvidas.
Modifiquei o arquivo .htaccess para:
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)/$ index.php?categoria=$1

e beleza, ele está abrindo a página que tem que abrir, mas não carrega nenhuma imagem da página e nem do layout.
e nos outros diretorios do apache precisa por alguma coisa no .htaccess?
e como abrir os outros links como no exemplo que mostrei no primeiro post? é só ir colocando as linhas no .htaccess que já tenho, tipo assim:
Options +FollowSymLinksRewriteEngine on
RewriteRule ^(.*)/$ index.php?categoria=$1
RewriteRule ^(.*)/(.*)/$ index.php?pg=$1&sub=$2
RewriteRule ...
?

Edição feita por: flexiy, 21/10/2008, 11:11.


#4 Falci

Falci

    12 Horas

  • Usuários
  • 187 posts
  • Sexo:Masculino
  • Localidade:Brasil

Posted 21/10/2008, 11:49

Cara, não existe uma formula mágica pra isso..

se vc não intende isso, acho q deveria pesquisar sobre "expressões regulares" para começar
Depois q intender como ela funciona, vc vai precisar montar a melhor ER para o seu site.
Lembre-se que TUDO que "casar" com a ER será redirecionado (tudo mesmo, sub-diretorios, img's, css's, js's..)

Pra mim, uso assim:
RewriteEngine on
RewriteRule !\.(css|jpg|jpeg|gif|png|js)$ script.php

uma dica é colocar a tag <base> no começo do <head>
<?php /* falci at Falci.me */

$naoAcrediroQueEuFizUmaVariavelTaoGrandeSoParaGuardarUmTres = 3;
?>

#5 silici0

silici0

    ?

  • Usuários
  • 902 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP
  • Interesses:PHP, MySQL, XHTML, CSS, AJAX, JavaScript, Objective-C, Python, Games ... #geek

Posted 21/10/2008, 11:59

Na verdade sua Expressão Regular esta errada Você tem que usar o seguinte :

RewriteRule ^(.*)\/?(.*)\/?$ index.php?pg=$1&sub=$2

a expressão \/? diz que a / deve ser interpretada como barra mesmo, o \ serve como escape do caracter. Então ficaria assim:

Options +FollowSymLinksRewriteEngine on
RewriteRule ^(.*)\/?(.*)\/?(.*)\/?(.*)\/?$ index.php?pg=$1&sub=$2&tipo=$3&id=$4

Existe um modo mais simploria de se fazer isso, que é o seguinte você somente separar as variaveis com / ficando assim
index.php?cod=Modulo/Variavel/Var/Id/X

depois você so da um explode no $_GET['cod'] para pegar as variaveis.

Veja como fica o código :

RewriteRule ^(.*)$ index.php?cod=$1

Não se esqueça de adicionar a regra para que ele não redireciona as IMGS, caso contrario as img não abrem por que são lidas e passadas para o index tb.

RewriteCond %{SCRIPT_FILENAME} !\.(jpg|png|gif)

Procurando freelancer
***********************************************
Bachelor of Technology in Technology of Information, with great knowledge in Windows operating systems and Unix-Like (BSD, Ubuntu and Slackware), languages (PHP, JavaScript and MySQL), semantic (DHTML, Tableless, Ajax, MVC, OO) and analysis (manages projects based on PMI).
Developer in PHP, JAVA, Python, Objective-c MySQL, DHTML, CSS, JAVASCRIPT, JQUERY, JSON, SMARTY, MDB2, DOCTRINE, CAKEPHP. Linux desktop for work and MacOS. E-commerces, CRM and bussiness strategys
Love-me and be FREE use UniCes-Like .

#6 flexiy

flexiy

    Turista

  • Usuários
  • 56 posts
  • Sexo:Masculino

Posted 21/10/2008, 16:26

Falci: não sei sobre ER e tag <base> :/
não entendi tb a questão da imagens, elas são exebidas na pagina pelo caminho direto.

silici0: me interessei pelo modo simplorio, mas eu falei para não madar eu explodir nadaaa, eu não entendo disso haha
tentei entender e usar o que você passou como exemplo mas nada feito

vai longe isso, achei que tava perto haha.




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq