Rewrite Rules .htaccess que confuso
|
17-09-2010, 19:36
Mensagem: #1
|
|||
|
|||
Rewrite Rules .htaccess que confuso
Boas!
Tenho um site em php com o modulo mod_rewrite ligado. Pretendo re-escrever as urls do tipo www.site.com/index.php?menu=xxxx para www.site.com/xxxx E para isso puz a seguinte regra no .htaccess que funciona perfeitamente: RewriteEngine on RewriteRule ^([^/\.]+)/?$ /index.php?menu=$1 [L] mas tenho um outro problema: existe outra variável que é "stock" ou seja tenho ficheiros a apontar para www.site.com/index.php?stock=55 como faço para alem de reescrever a variavel "menu", reescrever também a variavel "stock" Esta regra não funciona: RewriteRule ^([^/\.]+)/?$ /index.php?stock=$1 [L] alem disto, queria que fosse reescrito para http://www.site.com/pastacategoria/55 o php processa-se todo no meu index.php Gratos! |
|||
17-09-2010, 19:46
Mensagem: #2
|
|||
|
|||
RE: Rewrite Rules .htaccess que confuso
O teu problema é que estás a dizer ao Apache que qualquer coisa que esteja em http://www.site.com/YYY "seja executado" como http://www.site.com/index.php?menu=YYY e não o contrário.
Daí que, tens de conseguir "identificar" no Apache se é um menu ou stock.. assim de cabeça (não sei se funciona, testa e diz), terias de fazer algo como: RewriteEngine on RewriteRule ^(stock/([^/\.]+)/?$ /index.php?stock=$1 [L] RewriteRule ^(menu/[^/\.]+)/?$ /index.php?menu=$1 [L] Para que conseguisses separar por http://www.site.com/stock/YYY e http://www.site.com/menu/YYY Outra forma, seria enviares as duas variáveis seguidas, do tipo http://www.site.com/YYY/KKK em que YYY seria o menu, e KKK o stock: RewriteEngine on RewriteRule ^([^/\.]+)/?$ /index.php?menu=$1&stock=$2 [L] BrunoBernardino.com |
|||
17-09-2010, 20:10
Mensagem: #3
|
|||
|
|||
RE: Rewrite Rules .htaccess que confuso
Não funcionou...
O que aconteceu foi um internal server error Não sei se é por as pastas stock e menu nao existirem de facto no servidor. Mantive a regra inicial que tinha e acrescentei apenas a regra ^(stock/([^/\.]+)/?$ /index.php?stock=$1 [L] mas sem a palavra stock ou seja ficou assim: RewriteEngine on RewriteRule ^([^/\.]+)/?$ /index.php?stock=$1 [L] RewriteRule ^([^/\.]+)/?$ /index.php?menu=$1 [L] e funcionou (!?) ou seja igual ao que tinhas mas na ordem que me deste (primeiro stock e dps menu). Não sei se é disso mas de facto funcionou.. só que se meter o tal nome stock atrás (RewriteRule ^(stock/([^/\.]+)/?$ /index.php?stock=$1 [L]) dá Internal server error e o que queria de facto era escrever o link deste modo: http://www.site.com/stock/55 e nao http://www.site.com/55. go go gadget go! |
|||
« Mais Antigo | Mais Recente »
|
Utilizadores a ver este tópico: 2 Visitante(s)