Logo Hardware.com.br
Roger_Wolff
Roger_Wolff Membro Senior Registrado
168 Mensagens 1 Curtida

mod_rewrite não está fazendo redirecionamento transparente

#1 Por Roger_Wolff 28/10/2009 - 15:54
Estou com um problema aqui, não estou conseguindo fazer o redirecionamento ser "invisível" aos visitantes do meu site com o mod_rewrite.

Segue o código que estou usando:

Código:
RewriteEngine On
RewriteRule ^([[:alpha:]]{2}\d{3})$ http://www.imoveiscenter.com.br/imovel.php?codigo=$1

Queria que quando o visitante acessasse por exemplo http://www.imoveiscenter.com.br/PQ068 o htaccess tratasse esta url e sem redirecionar, retornasse o conteúdo de http://www.imoveiscenter.com.br/imovel.php?codigo=PQ068

Pelo que já estudei isso esta certo mas funciona como um redirecionamento normal, visível pelo visitante e totalmente inútil para mim.

O que está errado? Alguma configuração no servidor pode estar ocasionando esta "visibilidade"?

grato
Roger_Wolff
Roger_Wolff Membro Senior Registrado
168 Mensagens 1 Curtida
#3 Por Roger_Wolff
28/10/2009 - 16:42
Kakao disse:
Tente sem o nome do host e com a barra invertida na expressão regular:


RewriteEngine On
RewriteRule ^/([[:alpha:]]{2}\d{3})$ /imovel.php?codigo=$1


Obrigado por responde Kakao,

Mas sou obrigado a utilizar o domínio na URL destino, se não, não funciona. Aliás, o código funciona perfeitamente em relação a redirecionamento e tratamento da expressão, o que quero é que isso seja interno (invisível).

O que acontece é:
- Ao acessar http://www.imoveiscenter.com.br/PQ068 o htaccess faz um redirecionamento visível para http://www.imoveiscenter.com.br/imovel.php?codigo=PQ068

- Quando não deveria sair de http://www.imoveiscenter.com.br/PQ068

nao_sei.gif
Na ImovelaVenda.com.br você anuncia seu imóvel sem custo nenhum, adiciona até 50 fotos, marca o imóvel no Mapa e promove informações que terão visibilidade relevante na internet.

ImovelaVenda.com.br
Kakao
Kakao Super Participante Registrado
645 Mensagens 23 Curtidas
#4 Por Kakao
28/10/2009 - 17:10
Mas sou obrigado a utilizar o domínio na URL destino, se não, não funciona.

De que forma não funciona?

Eu entendi o que você quer. Mas colocando a URL absoluta na substituição ele vai checar se o hostname da url é o mesmo host processando a requisição e se não for ele vai fazer um redirect como dito no manual:

http://httpd.apache.org/docs/2.2/pt-br/mod/mod_rewrite.html#rewriterule

Absolute URL
If an absolute URL is specified, mod_rewrite checks to see whether the
hostname matches the current host. If it does, the scheme and hostname are
stripped out and the resulting path is treated as a URL-path. Otherwise, an
external redirect is performed for the given URL. To force an external redirect
back to the current host, see the [R] flag below.


Por exemplo se ao invés de http://www.imoveiscenter.com.br você estiver pedindo http://imoveiscenter.com.br (sem o www) ele vai ver que é diferente e vai fazer o redirecionamento externo.

Você esta usando o htaccess ou está configurando no arquivo de configuração do apache? Se for no arquivo de configuração utilize a diretiva RewriteLog para ver o que está acontecendo na reescrita.
Roger_Wolff
Roger_Wolff Membro Senior Registrado
168 Mensagens 1 Curtida
#5 Por Roger_Wolff
28/10/2009 - 17:40
Kakao disse:
De que forma não funciona?

Eu entendi o que você quer. Mas colocando a URL absoluta na substituição ele vai checar se o hostname da url é o mesmo host processando a requisição e se não for ele vai fazer um redirect como dito no manual:

http://httpd.apache.org/docs/2.2/pt-br/mod/mod_rewrite.html#rewriterule

Absolute URL
If an absolute URL is specified, mod_rewrite checks to see whether the
hostname matches the current host. If it does, the scheme and hostname are
stripped out and the resulting path is treated as a URL-path. Otherwise, an
external redirect is performed for the given URL. To force an external redirect
back to the current host, see the [R] flag below.
Por exemplo se ao invés de http://www.imoveiscenter.com.br você estiver pedindo http://imoveiscenter.com.br (sem o www) ele vai ver que é diferente e vai fazer o redirecionamento externo.

Você esta usando o htaccess ou está configurando no arquivo de configuração do apache? Se for no arquivo de configuração utilize a diretiva RewriteLog para ver o que está acontecendo na reescrita.


haa.. reparei no meu erro, havia colocado [R] (bem juca) fiquei_vermelho.png
mas então, teu código deu certo com um porém, não funciona com a barra na expressão ai ficou assim, funcionando:

RewriteRule ^([[:alpha:]]{2}\d{3})$ /imovel.php?codigo=$1

valeu ze_bonitinho.png
Na ImovelaVenda.com.br você anuncia seu imóvel sem custo nenhum, adiciona até 50 fotos, marca o imóvel no Mapa e promove informações que terão visibilidade relevante na internet.

ImovelaVenda.com.br
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal