Jump to content
jfosorio

[Resolvido] .htaccess mod rewrite

Recommended Posts

jfosorio

Bom dia,

Preciso de uma pequena ajuda para resolver um pequeno problema com o mod rewrite. Então, é o seguinte: o que eu pretendo é uma regra que reescreva www.domain.com/en/home como www.domain.com/index.php?lang=en.

Eu tentei com a seguinte regra:

RewriteRule ^([A-Za-z0-9-_()'ºª,:]+)/home/?$ index.php?lang=$1

O problema é que baralha os caminhos relativos para outros ficheiros, como folhas de estilo, scripts, etc. Será que alguém pode dar uma ajuda? (Espero ter explicado bem o problema).


CSS 3D Text - Partilha mensagens em 3D com os teus amigos no Facebook!

Portal de Informática it4life - Emprego, notícias, fórum, comunidade.

Share this post


Link to post
Share on other sites
brunoais

Mostra exemplos (pelo menos, 3, para cada) de urls em que:

Ele faz match e não devia

Ele faz match e deve.

Ele não faz match e devia.

Ele não faz match e não deve.

Isto, para eu perceber melhor que procurar que esteja de errado.


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
Rui Carlos

Suspeito que, em adição ao que tens, vais querer algo do género:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

De qualquer modo, o que precisas é usar o RewriteCond para evitar rescritas em situações indesejadas.

Em alternativa, também pode ser que consigas resolver o problema com uma expressão regular mais restritiva em vez de ([A-Za-z0-9-_()'ºª,:]+). Diria que te chegava ([A-Za-z][A-Za-z]).

Share this post


Link to post
Share on other sites
jfosorio

Boas,

Depois de me ter cansado a pesquisar pela net, acabei por usar caminhos absolutos para tudo. Foi uma canseira ter de andar a mudar tudo, mas resolvi a questão, criando uma class Config com métodos estáticos para ir buscar o domínio (desta forma posso utilizar o mesmo esquema para projetos futuros).

Em alternativa, também pode ser que consigas resolver o problema com uma expressão regular mais restritiva em vez de ([A-Za-z0-9-_()'ºª,:]+). Diria que te chegava ([A-Za-z][A-Za-z]).

Rui, de facto tens razão. A expressão [A-Za-z0-9-_()'ºª,:] é a que eu costumo usar para outras situações, como títulos de registos, que podem conter esses caracteres.

De qq das formas, obrigado pelas sugestões.


CSS 3D Text - Partilha mensagens em 3D com os teus amigos no Facebook!

Portal de Informática it4life - Emprego, notícias, fórum, comunidade.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.