← Desenvolvimento

HTACCESS - Friendly urls e expressões regulares [URGENTE]

Lida 1908 vezes

Offline

muiomuio 
Membro
Mensagens 324 Gostos 0
Feedback +1

Troféus totais: 23
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 4 Level 3 Level 2 Level 1 100 Posts 50 Posts

Boas,

Preciso de criar um url rewrite em HTaccess para criar friendly urls, no entanto não percebo nada de expressões regulares. Embora tenha andado a ler sobre expressões regulares e htaccess rewrites, friendly urls, não estou a conseguir realizar a tarefa. Por este motivo venho pedir ajuda à comunidade

Tenho o endereço www.site.com/?content_id=4 e outro endereço www.site.com/?content_id=kit-portatil

Não sei se influencia mas por defeito o URL não incluí a variavel de idioma mas ela é passada por default para pt sendo que o site suporta mais 4 idiomas para além do pt.

O endereço com o idioma fica www.site.com/?lang=pt&content_id=4 ou www.site.com/?lang=pt&content_id=kit-portatil

Preciso de uma forma de transformar o endereço www.site.com/?content_id=4 em www.site.com/pt/produto/portatil e www.site.com/?content_id=kit-portatil em www.site.com/pt/produto/kit-portatil

O mesmo se aplica a endereços com a variavel lang no endereço www.site.com/?lang=pt&content_id=4 precisa de ficar www.site.com/pt/produto/portatil e www.site.com/?lang=pt&content_id=kit-portatil precisa de ficar www.site.com/pt/produto/kit-portatil

Deixo apenas a nota de que tem mesmo de ser com expressões regulares devido ao elevado número de endereços para alterar, aos vários idiomas que podem ser seleccionados a qualquer momento e a futuros produtos que serão inseridos e tem mesmo de ser com htaccess.

Agradeço a ajuda urgente.

Obrigado pela atenção
Mário Andrade

Offline

kaydara 
Membro
Mensagens 616 Gostos 1
Feedback +1

Troféus totais: 21
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 4 Level 3 Level 2 Level 1 500 Posts 100 Posts

www.site.com/?content_id=4 em www.site.com/pt/produto/portatil

Este primeiro esquece, pelo menos a nível de htaccess, terá de ser a nível de routing na aplicação... como é que o htaccess saberá que o id 1000 corresponde a batatas ?

---

www.site.com/?content_id=kit-portatil em www.site.com/pt/produto/kit-portatil

pegando num exemplo da net poderia ser algo do género:

RewriteRule content_id=(.*)$ http://www.site.com/pt/produto/$1 [L,R=Permanent]


dependente de onte apareça o lang pode-se mudar também o direcionamento mas primeiro punha esta a funcionar e depois vias o lang
Offline

muiomuio 
Membro
Mensagens 324 Gostos 0
Feedback +1

Troféus totais: 23
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 4 Level 3 Level 2 Level 1 100 Posts 50 Posts

Obrigado kaydara,

Obrigado pela resposta rápida. No entanto o endereço não se alterou.

Actualmente estou a testar a seguinte regra:
Código: [Seleccione]
RewriteRule ^produto/(en|pt|fr|ch|es)/([a-z].*)$ index.php?lang=$1&content_url=$2 [L]
Mas o url não muda  :-(