Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Oi precisava de uma ajuda, expressoes regulares não é o meu forte, eu quando vai criar o meu url amigavel, meto no htacess assim:
RewriteRule quemsomos/(.*) page.php?id=$1
Mas depois sou obrigado a fazer para cada link o seu proprio nome, fico com uma lista comprida, não existe nenhuma forma de poder no lugar de quemsomos meter o texto que quiser e depois usar so o id para identificar, algo como isso
RewriteRule ^/(.*) page.php?id=$1 não sei, assim nao necessito escrever no htacess em cada um dos links e so preciso de uma linha
Você pode criar um sistema de rotas. Fica bem mais elegante e fácil de manter.
Explico como fazer isso neste artigo:
http://rberaldo.com.br/urls-amigaveis-sem-htaccess-usando-slim/
Bom dia, eu uso esse htaccess que é bem interessante...
RewriteEngine On
ErrorDocument 400 index.php
ErrorDocument 401 index.php
ErrorDocument 403 index.php
ErrorDocument 404 index.php
ErrorDocument 500 index.php
RewriteRule ^([A-Za-z0-9-]+)?$ index.php [L]
RewriteRule ^([A-Za-z0-9-]+)/?$ index.php [L]
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-_]+)/?$ index.php [L]
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/?$ index.php [L]
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/?$ index.php [L]
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/?$ index.php [L]
>
Você pode criar um sistema de rotas. Fica bem mais elegante e fácil de manter.
Explico como fazer isso neste artigo:
http://rberaldo.com.br/urls-amigaveis-sem-htaccess-usando-slim/
Até pdoeria usar, mas esse site ta hardcoded, nao está sendo usada nenhuma framework
>
Quase isso que você colocou:
RewriteRule ([a-zA-Z0-9_]+)/?$ page.php?id=$1
Com isso você pega qualquer coisa que o usuário digitar (letras de a-z e de A-Z e números de 0-9, mas não pega caracteres especiais, traços e etc.) e lança isso como se fosse "?id=o_que_voce_digitou_aqui".
Não esta a funcionar Diego, ele não apanha o id, sem ele não consigo pegar os dados da base dados.
Eu queria por exemplo ter a possibilidade de meter o url como:
www.dominio.com/qualquernome/123
mas nesse caso so me possibilidade meter assim:
www.dominio.com/123
Eu nesse caso vou ser obrigado a criar uma coluna na base dados
Alguem sabe o problema das minhas paginas, ele muda o conteudo, mas nao muda as paginas, por isso fico com a estrutura do template sempre o mesmo, qual o problema?
Aqui vai meu codigo:
RewriteRule ^([a-zA-Z0-9_-]+)$ page.php?url=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ page.php?url=$1
RewriteRule ^([a-zA-Z0-9_-]+)$ nossoproduto.php?url=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ nossoproduto.php?url=$1
Até pdoeria usar, mas esse site ta hardcoded, nao está sendo usada nenhuma framework
Não tem problema.
Você pode baixar o Slim e usá-lo só para montar as rotas e executar as ações referentes a cada uma delas
Se ainda assim não quiser usar o Slim, tudo bem, use $_SERVER['REQUEST_URI'], mas o Slim facilita bastante.
O importante é manter as regras dentro do PHP, não dentro do .htaccess
Quase isso que você colocou:
RewriteRule ([a-zA-Z0-9_]+)/?$ page.php?id=$1
Com isso você pega qualquer coisa que o usuário digitar (letras de a-z e de A-Z e números de 0-9, mas não pega caracteres especiais, traços e etc.) e lança isso como se fosse "?id=o_que_voce_digitou_aqui".