Ir para conteúdo

Arquivado

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

eph2

[Resolvido] URL Amigável - Problema com Imagens

Recommended Posts

Fala pessoal, tudo certo?

 

Estou começando com URL Rewrite e estou meio perdido. Já consegui fazer abrir as páginas com os endereços amigáveis, etc. Tinha problema em abrir imagens nas pasta /images/, css, etc, mas também já consegui resolver. Meu problema agora da seguinte forma, além das imagens na pasta images tenho imagem em outras pastas.

 

Por exemplo, cadastrei um produto no site e o mesmo pode ser acessado pelo www.endereco.com.br/produtos/nome-do-produto.html, ao abrir tudo carrega perfeito, menos a imagem do próprio produto, que ele aponta para o endereço www.endereco.com.br/fotos_produtos/2/foto_do_produto.jpg (o 2 do endereço é o id da categoria e tb coloquei o http na frente, só não copiei aqui para não ficar como link)

 

Como posso resolver essa questão? Abaixo copio meu atual .htaccess e meu arquivo que faz o redirecionamento para as páginas.

 

.htaccess

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond ^/$ !(\.(gif¦jpg¦css)$¦^/$)
RewriteRule ^([^/]*)/([^/]*)/?$ /rewrite.php?tipo=$1 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ /rewrite.php?tipo=$1&id=$2 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)$ /rewrite.php?tipo=$1&id=$3 [L]

rewrite.php

<?
$tipo=$_GET["tipo"];
$id=$_GET["id"];
if ($tipo=="materias") {
	$painel = "frontend";
	require("admin/brain.php");
	if(!$id) {
		#Faz a seleçao no banco para a listagem da primeira categoria
		$query_primeira_categoria = "SELECT * FROM categorias WHERE tipo='2' AND subcategoria='0' ORDER BY nome ASC LIMIT 1";
		$resultado_primeira_categoria = mysql_query($query_primeira_categoria);
		$monta_select_primeira_categoria = mysql_fetch_array($resultado_primeira_categoria);
		$id=$monta_select_primeira_categoria["id"];
	}
	include("materias.php");
} else {
	include("$tipo.php");
}
?>

PS: Notei que ao tentar acessar o endereço da imagem direto, ele tenta fazer um redirect como se estivesse usando as regras do URL Rewrite.

 

Pessoal, alguma luz? Alguém pra me dar uma dica? Algum ponto de partida?

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

colocando a tag <img /> com caminho absoluto você resolve isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

colocando a tag <img /> com caminho absoluto você resolve isso.

 

Olá Bruno, tudo bem?

 

Obrigado pela resposta. Mas fiquei com uma dúvida, como devo aplicar essa tag no .htaccess? Sou leigo inicial no assunto e sei formar a linha depois do "?", mas antes tenho dúvidas.

 

Além disso, pelo o que entendi, se não fosse pelos .js e .css eu poderia tirar a linha abaixo do meu .htacess?

 

...
RewriteCond ^/$ !(\.(gif¦jpg¦css)$¦^/$)
...

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Te falei para fazer no HTML

<img src="http://www.site.com.br/images/foto.jpg" alt="" />
em vez de fazer:

<img src="images/foto.jpg" alt="" />

^_^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Te falei para fazer no HTML

<img src="http://www.site.com.br/images/foto.jpg" alt="" />
em vez de fazer:

<img src="images/foto.jpg" alt="" />

^_^

 

Olá William. Novamente obrigado pela resposta. No caso já fiz o endereço ser completo, adicionando o domínio, e mesmo assim ele continua dando erro na imagem.

 

PS: Não adicionei no meu head uma instrução de base url, coloquei o domínio diretamente no source da imagem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem um link para o site? o problema pode ser outro..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem um link para o site? o problema pode ser outro..

 

Olá William. Abaixo segue o link:

 

http://www.guiadosantigos.com.br/index.php

 

A imagem que não abre é uma no primeiro "parágrafo". Ao abrir a página você nota nitidamente que imagem é, outra imagem que não é aberta é se você clicar no "matérias" logo abaixo a listagem uma outra imagem deveria ser mostrada.

 

Como não tenho conhecimento com URL Rewrite não posso afirmar com certeza, mas creio que parte do meu problema está naquela condição que destaquei alguns posts acima.

 

Abraços, e novamente obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta usar isso -> RewriteRule !\.(gif|jpg|jpeg|png|css|js|swf|php|xml|ani|cur|icon|ico|doc|docx|pdf|php|txt)$ index.php [L]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta usar isso -> RewriteRule !\.(gif|jpg|jpeg|png|css|js|swf|php|xml|ani|cur|icon|ico|doc|docx|pdf|php|txt)$ index.php [L]

 

Olá amigo, infelizmente esta regra não me deu resultados. O Rewrite da página continua tudo ok, mas as imagens, css, js, etc, não funcionam.

 

Mesmo assim, obrigado pela dica.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoa, alguma luz pra mim? Estou começando a ficar desesperado :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoa, alguma luz pra mim? Estou começando a ficar desesperado :(

 

 

Olá

 

Estou com o mesmo problema, minhas imagens, css e scripts em js não abrem.

Eu resolvi colocando um aquivo .htaccess com RewriteEngine Off na pasta onde estão as imagens e outros arquivos incluidos.

Acredito não ser a melhor solução ainda estou atrás da solução direta com expressão regular.

 

Se alguem puder ajudar, posta ai.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Pessoa, alguma luz pra mim? Estou começando a ficar desesperado :(

 

 

Olá

 

Estou com o mesmo problema, minhas imagens, css e scripts em js não abrem.

Eu resolvi colocando um aquivo .htaccess com RewriteEngine Off na pasta onde estão as imagens e outros arquivos incluidos.

Acredito não ser a melhor solução ainda estou atrás da solução direta com expressão regular.

 

Se alguem puder ajudar, posta ai.

 

Olá Ricardo. Tua dica foi muito boa para mim. Concordo que uma solução direta com expressão regular seria a solução perfeita, mas para colocar no ar o site já consegui uma "solução" com a tua dica.

 

Meu .htaccess da raiz ficou assim:

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond ^/$ !(\.(gif¦jpg¦css)$¦^/$)
RewriteRule ^([^/]*)/([^/]*)$ /rewrite.php?tipo=$1 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ /rewrite.php?tipo=$1&id=$2 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)$ /rewrite.php?tipo=$1&id=$3 [L]

Já nas pastas "raiz" das imagens (leia-se "img_materias na composição http:// www.enderecodosite.com.br/img_materias/id_categoria/imagem.jpg) adicionei o .htaccess desta forma.

RewriteEngine Off

Lembrando que as imagens devem estar inseridas com o endereço completo no html.

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.