Ir para conteúdo
mauro26

mod_rewrite htacess

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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".

Compartilhar este post


Link para o post
Compartilhar em outros sites

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-]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/([0-9]+)/?$ index.php [L]
RewriteRule   ^([A-Za-z0-9-]+)/([A-Za-z0-9-_]+)/([A-Za-z0-9-_]+)/([0-9]+)/([0-9]+)/?$ index.php [L]

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]

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Gleyson Abreu
      Bom estou tentando redirecionar o trafego do site para https mas não estou conseguindo estou tando usar:
      RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] Mas sem sucesso, alguém tem uma dica para fazer isso melhor?
    • Por Valnei Lakers
      Oi galera esse é meu primo tópico no fórum gostaria da ajuda de vocês eu tenho uma CMS que ela é adaptada para XAMPP e eu estou usando IIS, enfim, estou enfrentando dificuldades para passar o .htacess para web.config, não consigo passar RewriteRule pictures/(.*)_small.png pictures/$1.png para web.config, poderiam me ajudar?
    • Por Omar~
      Primeiramente desculpem mas não sabia onde postar isso.
       
      Então, devo dizer primeiro que, estou começando agora a usar o htacess e tudo que sei foi baseado em exemplos que vi.
      Bom,... basicamente queria um ajuda na regra de filtragem...
      No meu index de um website coloquei um include em outro arquivo PHP dentro de uma div.class para carregar páginas por GLOBAL GET dentro dessa div, esse arquivo recebe o valor do get e faz a requisição do arquivo.php da página solicitada.
      Exemplo: <a href="?page=lojas">XXX</a> o arquivo que inclusão recebe o "lojas" para requisitar determinado arquivo.
      Então criei a regra no htacess dessa forma:
       
      Assim sendo posso deixar o link:  <a href="lojas">XXX</a>, modificando a URL padrão SiteUrl/?page=lojas para SiteUrl/lojas.
      Mas como eu poderia passar um segundo ou terceiro filtro?
      Digamos que em lojas eu queira fazer a mesma coisa que fiz no index?
      Bom, então criei o htacess ficou assim:
       
      Assim sendo o link: <a href="?page=lojas&tab=produtos"> posso deixar assim <a href="lojas/produtos"> modificando a URL padrão SiteUrl/?page=lojas&tab=produtos para SiteUrl/lojas/produtos.
      No que funciona muito bem, porém ao acessar o link, tudo é carregado normalmente, exceto os dados do header do index, ou seja não carregando arquivos css nem JS, é como se eu tivesse removido todo conteúdo do header do index e acessado o site.
       
      O que eu fiz de errado? E alguém poderia me explicar porque isso acontece?
       
    • Por FernandoG
      Bom dia senhores(as),
      Preciso redirecionar apenas um link pelo .htacess.
      Por exemplo:
      Se a pessoa acessar meudominio.com.br/antigo redirecionar para meudominio.com.br/novo
      Porem se a pessoa tentar acessar meudominio.com.br/antigo/compra ele não deve ser redirecionado.
      Existe essa possibilidade?
       
    • Por Handrix
      Boa noite galera!
       
      Estou mexendo com .htacess pra conhecimento e estou com algumas dúvidas por exemplo:
      RewriteEngine On RewriteRule ^registro\/?$ index.php?pagina=registro RewriteRule ^usuario\/confirmar?$ index.php?pagina=confirmar-conta RewriteRule ^usuario\/mudar-senha?$ index.php?pagina=troca-senha RewriteRule ^usuario\/mudar-foto?$ index.php?pagina=troca-foto  
      Não tenho conhecimento mas gostaria que ficasse ao invés de "index.php?pagina=registro" que fique: dominio.com/registro como configurar o .htacess para redirecionar de tal forma? Assim como " index.php?pagina=confirmar-conta" pra: dominio.com/usuario/confirmar e assim por diante...
       
      Como posso fazer isso?
       
       
      Desde já, grato!
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.