Ir para o conteúdo
jfosorio

[Resolvido] .htaccess mod rewrite

Mensagens Recomendadas

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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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%.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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]).

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.