Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rpmarques

Expressões regulares

Recommended Posts

Boa tarde para todos, estou tentando implementar expressões regulares no meu sistema,

atualmente ao clicar em algum item, por exemplo para editar um produto o link é:

produtoAlterar.php?id=[iD DO REGISTRO ENCRIPTADO]

 

o que eu gostaria é que ficasse deste forma:

produtoAlterar/[iD DO REGISTRO ENCRIPTADO]

 

pelo que eu andei pesquisando, isto se chama url amigavel, e na minha ignorância, ficaria assim?

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9_-]+)$ produtoAlterar.php?id=$1
RewriteRule ^([a-zA-Z0-9_-]+)$ produtoExcluir.php?id=$1

dai eu teria que por uma regra para cada página PHP?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro que as duas regras são exatamente iguais, logo isso dai nunca vai funcionar.

Segundo, se você deseja apenas alterar de:

nomeDoArquivo.php?id=algumacoisa

para

nomeDoArquivo/algumacoisa

 

Você pode usar a algo mais simples:

RewriteRule ^([a-zA-Z0-9_-]+)\/([a-zA-Z0-9_-]+)$ $1.php?id=$2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nesse seu caso, sim.

 

Com expressões regulares, você pode definir que a regra se restrinja a uma pasta (ou root), arquivos (prefixo, sufixo, extensão).

 

Entretanto, as regras precisam possuir um ponto de diferença (que e exatamente o que o ESerra está descrevendo).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, e o php, tenho que fazer alguma coisa ou não preciso alterar nada?

Compartilhar este post


Link para o post
Compartilhar em outros sites

A princípio nada. Mas tudo depende da forma que você irá realizar a conversão.

 

O apache somente realizará a conversão de entrada. Da URL amigável para o padrão que o PHP já estava esperando receber.

Compartilhar este post


Link para o post
Compartilhar em outros sites

qndo tento usar o sistema com o .taccess, ele esta me retornando isto:

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at admin@example.com to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acabei de testar um htacess apenas com:

RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)\/([a-zA-Z0-9_-]+)$ $1.php?id=$2

E funcionou como esperado... se você tiver mais coisa no htaccess, esse pode ser o problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O PHP sequer "sabe" que existe URL amigável...

 

Veja se o mod_rewrite está ativo no seu localhost...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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