Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Da-lhe,Então galera, to configurando umas urls amigaveis aqui no meu apache, e travei com uma ER!o link vem http://localhost/post/create/ e devera ser interpretado dessa forma
http//localhost/setRoute.php?controller=$1&action=$2
mas ta complicado aqui, sou uma droga com ER's, entendo pouca coisa, o mais próximo que consegui foi
RewriteRule ^(.)\/(.)\/\/?$ /rewrite.php?controller=$1&action=$2
Dai quando eu vou debugar, o valor de controller vem = "/post" e não apenas "post" como deveria ser.e outra, quando eu não coloco "/" no final do link, da página não encontrada!!!![]'s
rolo não ....a mesma coisaconsegui retirar a primeira contra barra da primeira variavelentão ficou
^\/(.)\/(.)\/$mas ainda não consegui criar uma lógica, para
http//localhost/post/create ////sem a ultima barra não funciona
Ae Void beleza?
ER nao é dificil nao, depois que voce pega o jeito voce ve que nao é um bicho de 7 cabeças
testa ai:
RewriteRule ^(http:\/\/(.+?)\/)(.)\/(.)?\/? /rewrite.php?controller=$3&action=$4
eu testei aqui com php, nao sei como ira se comportar com o Rewrite, mas qualquer coisa se fala se deu certo ou nao
eu coloquei um opcional se caso nao tiver /create ele pega só o post
ah se quiser que eu explico caracter por caracter dai quem sabe te da um luz melhor.
ve ai e me fala t+
http://forum.imasters.com.br/index.php?showtopic=203965
da uma olhada ae.. acho que pode te ajudar =)
ehhehevaleu genteentão fabão, eu meti essa rule, e deu um Internal Server Errore sobre o seu tutorial p lion eu ja tinha visto ja .... na verdade, eu to configurando os rules com o .htaccess, e só essa ER que me travou aqui!
bem eu sei que sempre vai retorna esse /nome por isso que eu até avisei no meu tuto eu já tentei varias formas de ER no que fiz mais a melhor forma que consegui foi a quele que postei no tuto =)
pouts, por essa eu não esperava ein ....agora, surgiu uma dúvida, eu posso criar várias rules !?neste estilo:
RewriteRule ^(http:\/\/(.+?)\/)(.)\/(.)?\/?$ rewrite.php?controller=$3&action=$4RewriteRule ^(http:\/\/(.+?)\/)(.)\/(.)?\/?$ index.php?var=$3&var2=$4
???pouts, se não puder, fudeu!ps: lembrando que ainda estou a procura da ER perfeita pq essas deram pau eeueheuhe
se ja viu esse tuto?
foi através dele que eu me basiei
Pode criar sim.... mais acho meio que inutel... pois toda vez que você tiver uma nova sessão você terá que criar mais um rulesJá da maneira que eu montei no meu tuto você não fica limitado a ter que ficar fazendo sisso =)
Então o unico problema p lion, é que eu estou usando o zend ai eu queria fazer utilizando o .htaccess ... agora virou questão de honra manja !
euheuheuheuehe
eu vou conseguir véi !!! com certeza
vem cumigu!
E na verdade assim, no meu caso, eu só criaria duas regras. por que ?
Porque eu estou utilizando o Zend como eu ja havia citado anteriormente, e o projeto que estou desenvolvemento é consideravelmente grande, e de acordo com a estrutura de arquivos do padrão MVC os arquivos da pasta public_html são somente os responsáveis por instanciar uma classe de controle.
Oque acontece é que em muitos casos eu preciso reescrever uma rota, porque alguns arquivos ".php" estão em sub-diretórios, e o Zend interpreta a REQUESTI_URI
para gerar o controle e a ação, ou seja, caso eu tenha o seguinte endereço http://localhost/usuario/novo/ o zend ira interpretar da
seguinte forma: controle = usuario e ação = novo, agora se eu tiver um arquivo em um sub-diretório, por exemplo :
http://localhost/modulo1/chamado/procurar/ ele ira interpretar incorretamente, assim ó controle = modulo1 e
ação=chamado, mas na verdade deveria ser controle = chamado e ação = procurar do módulo1
sacou !??????
Se consegui demoro para postar para todos =) o maximo que consegui foi aquilo lá... se conseguir algo mesmo demoro =)
claro, com certeza meu brother!mais ta F*DAta complicado, por causa disso ó:
RewriteRule !\.(js|ico|txt|gif|jpg|png|css|php)$ index.php
sacaram!???Tudo que for diferente dessa lista, eu redireciona para o index.php.essa rule é necessário por causa do zend, sem ela, ele não funciona ...To tentando diversas coisas p/ botar pra funcionar o zend com url amigaveis, mas ta f*** !!!
eah, entãodepois de muito apanhar, a unica solução plausível que achei foi uma próxima da sua mesmo p lion.Realmente não há possibilidade de utilizar o Zend com url amigaveis configuradas pelo htaccess !mas ta beless!!!Eu vou dar uma aprimorada no script aqui, e depois eu posto !valeu!!!
Bom dia, eu uso uma Rule que funciona certinho em um site que desenvolvi.
para passar 2 variaveis assim deve funcionar:
RewriteRule ^([^/])\/([^/])\/?$ index.php?opc=$1&act=$2 [QSA,L]detalhe: funciona colocando ou não a barra no final!! =D
Ai me fala se funcionou ai pro teu caso!
Abração!
ja dei um jetinhu aqui galeranão foi preciso configurar rules no htaccessvaleu mesmo
URUUU!!consegui galeradepois de muito apanhar, entendi como funciona esse mod_rewrite, muito show este arquivinho de config. do apache !O meu no final ficou assim:
RewriteEngine onRewriteBase /RewriteCond %{REQUEST_URI} !-dRewriteRule ^(.+)\/(.+)\/(.+)\/$ rewrite.php?controller=$3&action=$2&basePath=$1 RewriteCond %{REQUEST_FILENAME} !-fRewriteRule !\.(js|ico|txt|gif|jpg|png|css)$ index.phpphp_flag magic_quotes_gpc offphp_value include_path "D:/web/src/lib/zf/library;D:/web/src/lib/ez/"
Agora meu zend funciona com urls amigaveis!
Você poderia esplicar de uma maneira bem simples como funciona o mod_rewrite?
cara, acho que de todos os usuários do forum, eu sou o pior em explicação.
me desculpa.
Mas eu vou me esforçar, se voce nao entender, pergunta denovo!
Seguinte, para utilizar o Zend em suas aplicações, é necessário que voce configure um arquivo .htaccess localizado no document root (htdocs) da sua maquina, ou do servidor.
Este arquivo .htaccess é um "arquivo externo" de configurações do apache (não sei se é o termo mais correto de se definir o arquivo .htaccess ....)
Neste arquivinho, eu configurei minhas regras de pasta em que ele esta localizado ....
Para maiores informações sobre o .htaccess, acesse
http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html
e tambem http://brunotorres.net/2005/02/01/urls-again
e por fim http://www.devin.com.br/eitch/dicas_apache/ :D
No meu arquivo, eu consegui configurar urls amigaveis, e o zend junto ... estou a 2 semanas tentando, mas confesso que não tentei muito, hj eu parei, sentei pra resolver e fiquei o dia inteiro .... mandei e-mails pra uma galera que eu conhecii no php-conference, e eles me deram algumas idéias ... ai eu juntei tudo e criei a minha solução
Óla gente ... mó parada estranha aconteceu aqui !
saca só essa er
$a = array();preg_match("^(.)\/(.)\/(.*)\/$^","office/post/read/cat/11131/",$a);print_r($a);
essa er nojenta ta interpretando da seguinte forma :
Array ( [0] => office/post/read/cat/11131/ [1] => office/post/read [2] => cat [3] => 11131 )só que eu queria :
[1] = office[2] = post[3] = read
e o restante nao entrasse no array se possivel, sei la !
Existe forma de se fazer isso com ER's , ou ela sempre vai meter toda a string dentro do array!?
[]'s
preg_match("#(.?)\/(.?)\/(.*?)\/#", "office/post/read/cat/11131/", $a);
resultado:
Array
(
[0] => office/post/read/
[1] => office
[2] => post
[3] => read
)
dai do jeito que voce pediu no array :
1 = office
2 = post
3 = read
euheuh
eu tb consegui aqui, mas de uma outra forma, ficou assim
$a = array();preg_match("^(.+?)\/(.+?)\/(.+?)\/|(.*)$^","office/post/read/cat/123/",$a);print_r($a);exit();mesma coisa que o seu no caso !mas ta f*** pra adaptar para o esquema de ER do .htaccess ... parece que ele nao aceita a lista (.+?)
Amo muito tudo isso!!
----edit-----
Da-lhe feras!
finalmente consegui !
então, quem quiser saber, no .htaccess ficaria assim
RewriteRule ^([^/])?\/([^/])?\/([^/]*)\/?.+$ pagina.php?var=$2&var2=$3&var3=$1foi punks viu !
ER não é meu forte, mas certa vez um membro de outro fórum me disse que se você está setando 2 variaveis a serem recebidas é necessário passa-las senao nao funciona....
Fiz um teste da seguinte maneira:
RewriteRule ^(.)\/(.)\/$ rewrite.php?controller=$1&action=$2
Só que passando somente a variavel "controller" ele não acessa ja passando
ela completa com 2 parametros funciona...
E outra, agora pode por a barra no final que funciona ....já sem ela não http://forum.imasters.com.br/public/style_emoticons/default/closedeyes.gif
Tudo meia boca, mas quem sabe ti ajude!!
Vou testando mais algumas coisinhas aqui....se der certo volto a postar