Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, boa noite! Eu tenho um site e quis colocar URLs amigáveis nele pra melhorar a navegação. Estudei como fazia e aprendi um bocado. Consegui criar algumas regras e tudo, aprendi ERs também e tudo mais. Só que tenho tentado montar uma url amigável há uns dois dias e não consigo de jeito nenhum... O que acontece é que eu tenho a seguinte expressão no meu .htaccess:
RewriteRule ^guias/herborismo/?$ /index.php?src=notice_view&ext=php?id=3 [NC,L]
o endereço do site é http://www.guildaheroes.tk. Podem tentar acessar pra testar, o certo seria eu digitar www.guildaheroes.tk/guias/herborismo e abrir a página http://www.guildaheroes.tk/index.php?src=notice_view&ext=php?id=3, mas isso acontece de forma MUITO esquisita, ele desconfigura a minha página inteira. Se tentar acessar pelo link completo, funciona perfeitamente. Se tentar acessar pela url amigável, a página fica totalmente desconfigurada. Vejam vocês mesmos: página funcionando, sem a url amigável e página desconfigurada, com a url amigável. É muito estranho, queria saber se alguém tem ideia do que possa estar acontecendo.
Outra coisa, tem essa url amigável aqui também:
RewriteRule ^contato/?$ /index.php?src=contact&ext=html [NC,L]
Mas essa funciona perfeitamente. É só tentar acessar http://www.guildaheroes.tk/contato que vocês vão ver que essa funciona direitinho. Bom, desde já agradeço a ajuda.
Já descobri o erro fazendo milhares de testes aqui. O problema tá na barra invertida separando o endereço que eu quero que seja a minha url amigável. Exemplo:
RewriteRule ^guias/herborismo/?$ /index.php?src=notice_view&ext=php?id=3 [NC,L]
Isso acima não funciona, mas o de baixo funciona:
RewriteRule ^guias-herborismo/?$ /index.php?src=notice_view&ext=php?id=3 [NC,L]
A barra que separa "guias/herborismo" não é aceita e causa o erro no carregamento, mas quando mudo pra "guias-herborismo" já pássa a funcionar. Alguém tem ideia do que possa ser isso?
vc ta definido 3 variaveis veja apos a segunda se usasse & e não ?
RewriteRule ^guias/herborismo/?$ /index.php?src=notice_view&ext=php&id=3 [NC,L]
entao o acesso seria
guias/herborismo/noticia/php/15
O problema é justamente que src=notice_view e &ext=php vão formar o endereço da página que eu quero acessar: notice_view.php. O id que vem depois é o método GET que eu to mandando por essa url que acabei de abrir, então isso tudo alí, contando com a ? repetida, vai formar uma url como: notice_view.php?id=3. Dentro da minha index.php tem um iframe que abre essa página, que chega até o ifrme pelo GET, assim ramificada mesmo. Então, com esses códigos eu to dizendo à minha index.php que no iframe eu quero abrir o endereço notice_view.php?id=3. Isso pra eu mudar eu teria que refazer toda a base da index e das outras páginas que redirecionam pro iframe dela. No meu site a navegação não tem refresh, por isso criei esse método.
Mas o problema real é que no .htaccess se eu usar um rewrite com / ele não funciona. Se eu usar
RewriteRule ^guias-herborismo/?$ /index.php?src=notice_view&ext=php?id=3 [NC,L]
ele funciona, mas se eu usar
RewriteRule ^guias/herborismo/?$ /index.php?src=notice_view&ext=php?id=3 [NC,L]
ou mesmo escapando a barra:
RewriteRule ^guias\/herborismo/?$ /index.php?src=notice_view&ext=php?id=3 [NC,L]
Assim já não funciona. Mas eu já consegui resolver isso de outra forma, eu coloquei pra acessar diretamente pelo nome da profissão desejada, assim:
RewriteRule ^herborismo/?$ /index.php?src=notice_view&ext=php?id=3 [NC,L]
Desse jeito funciona, é só acessar www.guildaheroes.tk/herborismo. Mas eu queria mesmo usar as barras pra organizar melhor, mas tudo bem. Depois eu vejo isso, to sem tempo agora.
Mas brigadão pela ajuda \o
obs: mesmo que eu escape a barra continua não funcionando.
RewriteRule ^guias\/herborismo/?$ /index.php?src=notice_view&ext=php?id=3 [NC,L]
Já tentei assim e também não foi.