Jump to content


Photo

Problemas Com Mod_Rewrite


  • Faça o login para participar
10 replies to this topic

#1 Renan Fernandes

Renan Fernandes

    12 Horas

  • Usuários
  • 179 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro
  • Interesses:Tudo relacionado a webmaster, webdesign e programação.

Posted 03/02/2010, 22:08

Eu tenho o seguinte .htaccess:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !.(gif|jpg|png|css|js)$ index.php
RewriteRule ^artigo/([^/]*)(/([^/]*)/?)?$ index.php?artigo=$1 [L]

Todos os artigos são carregados no index.php que é quem trata o recebimento por get e inclui o arquivo na página.

O problema, é que mesmo com a regra para ignorar as extensões png,js,css... eu perco as imagens, estilos, scripts...

Alguém poderia me ajudar?

Não existe vento favorável quando não se sabe onde quer chegar.


Dicas Digitais

#2 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

Posted 03/02/2010, 23:34

Amigo, é o seguinte

Primeriamente deixo a dica para aumentar a tua regra de negação...

RewriteRule !\.(jpg|jpeg|gif|css|swf|txt|js|png|ico|doc)$ index.php

Não esqueça a barra de escape no ponto antes das opções de extensões.

Depois para aparecer as imagens, CSS e tudo mais corretamente faça assim:

Ainda dentro da tag

<head>...</head>

Coloque o seguinte:

<base href="http://www.teusite.com.br" />

Pronto, tudo resolvido.

(y)Até mais

#3 Renan Fernandes

Renan Fernandes

    12 Horas

  • Usuários
  • 179 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro
  • Interesses:Tudo relacionado a webmaster, webdesign e programação.

Posted 04/02/2010, 18:59

Amigo, é o seguinte

Primeriamente deixo a dica para aumentar a tua regra de negação...

RewriteRule !\.(jpg|jpeg|gif|css|swf|txt|js|png|ico|doc)$ index.php

Não esqueça a barra de escape no ponto antes das opções de extensões.

Depois para aparecer as imagens, CSS e tudo mais corretamente faça assim:

Ainda dentro da tag

<head>...</head>

Coloque o seguinte:

<base href="http://www.teusite.com.br" />

Pronto, tudo resolvido.

(y)

Nossa meu, pena que eu só posso te dar um ponto!
Sou teu fã! Passei um dia inteiro tentando resolver esse problema e tive idéias muito loucas, e vem você com uma solução simples assim.

Valeu cara, abraços, tudo de bom.
############ EDIT ################
ôpa, só uma coisinha... tá tudo funcionando beleza, só que com a regra denegação, eu não recebo nada no $_GET , desabilitando os dados chegam. E isso com ou sem a barra de escape.

Oque pode ser?

Edição feita por: Renan Fernandes, 04/02/2010, 18:59.

Não existe vento favorável quando não se sabe onde quer chegar.


Dicas Digitais

#4 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

Posted 06/02/2010, 00:26

Olha, é estranho o que está acontecendo, não sou o cara no rewrite, nem na ER
Procure ter certeza que está tudo certo com as rules aí...
Ou com a forma que está pegando os valores.

Como está pegando os valores??

Abraço Até mais

#5 Renan Fernandes

Renan Fernandes

    12 Horas

  • Usuários
  • 179 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro
  • Interesses:Tudo relacionado a webmaster, webdesign e programação.

Posted 09/02/2010, 09:42

Olha, é estranho o que está acontecendo, não sou o cara no rewrite, nem na ER
Procure ter certeza que está tudo certo com as rules aí...
Ou com a forma que está pegando os valores.

Como está pegando os valores??

Abraço


Então, ainda não não estou tratando os valores, porém estou dando um echo pra ver se recebo eles corretamente, e estou recebendo. Só quando aplico a regra de negação, é que os valores não são passados.

A regra de negação é a seguinte:
RewriteRule !\.(jpg|jpeg|gif|css|swf|txt|js|png|ico|doc)$ index.php
Então estou terminando com a regra comentada.

Não existe vento favorável quando não se sabe onde quer chegar.


Dicas Digitais

#6 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

Posted 09/02/2010, 12:00

Mas com a regra descomentada como vc tenta pegar os valores???

Por exemplo eu faço somente assim para rewrite:

RewriteEngine On
RewriteRule !\.(jpg|jpeg|gif|css|swf|txt|js|png|ico|doc)$ index.php

Aí depois eu pego assim:
<?php

$get        = explode("/", $_SERVER['REQUEST_URI']);
$get        = array_splice($get, 1);

$secao      = (isset($get[0])) ? $get[0] : NULL;

switch ($secao){

	case 'blablabla' : 

		$include = "blablabla.php";

		break;

	case 'etc...' : 

	...
	...

}

Como vc faz???Até mais

#7 Renan Fernandes

Renan Fernandes

    12 Horas

  • Usuários
  • 179 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro
  • Interesses:Tudo relacionado a webmaster, webdesign e programação.

Posted 10/02/2010, 09:47

Então, tenho pegado direto com a regra comentada:
$area = $_GET['area'];
	switch ($area){
		case 'login':
			include_once('paginas/login.php');
			break;
                        ...

Da forma que você passou também funciona, porém, só com a regra comentada. Quando descomento a regra, não recebo nada por get.

Edição feita por: Renan Fernandes, 10/02/2010, 09:55.

Não existe vento favorável quando não se sabe onde quer chegar.


Dicas Digitais

#8 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

Posted 10/02/2010, 14:26

Então, tenho pegado direto com a regra comentada:

$area = $_GET['area'];
	switch ($area){
		case 'login':
			include_once('paginas/login.php');
			break;
                        ...

Da forma que você passou também funciona, porém, só com a regra comentada. Quando descomento a regra, não recebo nada por get.


Mas de fato, usando rewrite, tu não vai pegar por $_GET

Se olhar com atenção verá que da forma que faço não uso $_GET

Outra coisa, no seu exemplo acima, mostrou tentar pegar o login.php dentro da pasta paginas/

Se vc não colocar um .htccess apenas com RewriteEngine Off dentro desta pasta, dará erro, pois ele não identificará paginas/ como pasta e sim como valor a ser pego


(y)Até mais

#9 Renan Fernandes

Renan Fernandes

    12 Horas

  • Usuários
  • 179 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro
  • Interesses:Tudo relacionado a webmaster, webdesign e programação.

Posted 10/02/2010, 14:34

:ponder: Entendi. Você pega a requisição direto não é? Vou passar a usar assim. Mas de fato, das duas formas não está funcionando com a regra de negação ativada. Se bem, que não tive nenhum problema até agora em usar sem ela.

E sim, eu estou conseguindo incluir a página, tanto por $_GET quanto por REQUEST_URI, mas porque este trecho do código, faz parte de uma função que é usada no index para processar as requisições.

A ausência da regra de negação interfere em alguma coisa? Porque depois da dica que você me passou, imagens, js... tudo é carregado perfeitamente.

Edição feita por: Renan Fernandes, 10/02/2010, 14:38.

Não existe vento favorável quando não se sabe onde quer chegar.


Dicas Digitais

#10 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

Posted 11/02/2010, 14:34

:ponder: Entendi. Você pega a requisição direto não é? Vou passar a usar assim. Mas de fato, das duas formas não está funcionando com a regra de negação ativada. Se bem, que não tive nenhum problema até agora em usar sem ela.

E sim, eu estou conseguindo incluir a página, tanto por $_GET quanto por REQUEST_URI, mas porque este trecho do código, faz parte de uma função que é usada no index para processar as requisições.

A ausência da regra de negação interfere em alguma coisa? Porque depois da dica que você me passou, imagens, js... tudo é carregado perfeitamente.


Se está tudo correndo perfeitamente da forma que está fazendo... então beleza hehehe

Nem se preocupe, va adiante

Qualquer dúvida entre em contato

AbraçoAté mais

#11 Renan Fernandes

Renan Fernandes

    12 Horas

  • Usuários
  • 179 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro
  • Interesses:Tudo relacionado a webmaster, webdesign e programação.

Posted 11/02/2010, 15:07


:ponder: Entendi. Você pega a requisição direto não é? Vou passar a usar assim. Mas de fato, das duas formas não está funcionando com a regra de negação ativada. Se bem, que não tive nenhum problema até agora em usar sem ela.

E sim, eu estou conseguindo incluir a página, tanto por $_GET quanto por REQUEST_URI, mas porque este trecho do código, faz parte de uma função que é usada no index para processar as requisições.

A ausência da regra de negação interfere em alguma coisa? Porque depois da dica que você me passou, imagens, js... tudo é carregado perfeitamente.


Se está tudo correndo perfeitamente da forma que está fazendo... então beleza hehehe

Nem se preocupe, va adiante

Qualquer dúvida entre em contato

Abraço


ôpa, agradeço muito a força.

Abraços.

Não existe vento favorável quando não se sabe onde quer chegar.


Dicas Digitais




2 user(s) are reading this topic

0 membro(s), 2 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq