Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal! Preciso muito da ajuda de vocês.
Estou desenvolvendo um sistema e nele utilizarei url amigavel e parametros criptografados para enviar dados via GET.
Então criei as seguuintes regras no .htaccess:
RewriteRule ^([a-z]+)/?$ ./modulos/$1.php [L]
Então a url que será: www.endereco.com.br/produtos/ chamará a página www.endereco.com.br/modulos/produtos.php
RewriteRule ^([a-z]+)/([a-z]+)/?$ ./modulos/$1.$2.php [L]
Nesta a url que será: www.endereco.com.br/produtos/cadastro chamará a página www.endereco.com.br/modulos/produtos.cadastro.php
RewriteRule ^([a-z]+)/([a-z]+)/(.*)/?$ ./modulos/$1.$2.php?acao=$3 [L]
Nesta a url que será: www.endereco.com.br/produtos/cadastro/eJyzz0yxNTRUS0wuyczPs01NySxJLAIARBIHBg==/ chamará a página www.endereco.com.br/modulos/produtos.cadastro.php?acao=eJyzz0yxNTRUS0wuyczPs01NySxJLAIARBIHBg==
Só para vocês entenderem, nesse parametro criptografado eu envio a acao e o id do registro para edicao.
Pois bem, tudo funciona belezinha, porém, ao incluir esta ultima regra, todas as páginas css, js que estão em diretórios diferentes param de funcionar. Já tentei inserir a url completa mas não rolou.
Alguém poderia me ajudar nesta questão, talvez alguma regra de negacao para arquivos js, css..
Se puderem me ajudar ficarei imensamente agradecido!
Abraços.
>
Já tentou usar a seguinte regra abaixo e colocar o caminho completo dos arquivos de CSS e JS ?!
RewriteRule !\.(gif|jpg|jpeg|png|css|js|swf|php|xml|ani|cur|icon|doc|docx|pdf)$ index.php [L]
Amigo, primeiramente muito obrigado pela resposta.
Tentei usar sim.. também nâo rolou...
Você tem alguma outra sugestão?
Ou alguém sugere algo???
Obrigado!
Estou com o mesmo problema!
Erro dado pelo mozilla:
"Erro: A folha de estilos http://localhost/testes/2010/noticias/1/site/css/abas.css não foi carregada porque seu tipo MIME, “text/html”, não é “text/css”.
Arquivo-fonte: http://localhost/testes/2010/noticias/1/
Tentei te tudo um pouco tambem é nada!
O que percebi é que o cmainho dos arquivos muda!
ex:
URL do arquivo JS: http://localhost/testes/2010/site/js/lib/jquery-1.4.2.min.js
fica como:
URL do arquivo JS: http://localhost/testes/2010/[b}noticias/1[/b]/site/js/lib/jquery-1.4.2.min.js
ele adiciona o que estou usando na URL da pagina, neste caso:
sessao: noticias
ID: 1
noticias/1
O engraçado que ate a priemira condição ele funciona:
localhost/testes/noticias
exibe a pagina de noticias tranquilamente, depois que adiciona o ID/Titulo para tudo (localhost/teste/noticias/ID/TITULO)
Porque isso!? Loucura!
meu .htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?pg=$1
RewriteRule !\.(gif|jpg|jpeg|png|css|js|swf|php|xml|ani|cur|icon|doc|docx|pdf)$ index.php [L]
preciso de ajuda o projeto PAROU!
Esperimentem usar o .htaccess abaixo:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Com esse código ele irá ignorar os arquivos que realmente existam no servidor, como folhas de estilo, imagens e javascript, chamando o arquivo index.php apenas se o que foi requisitado não existir.
>
Esperimentem usar o .htaccess abaixo:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Com esse código ele irá ignorar os arquivos que realmente existam no servidor, como folhas de estilo, imagens e javascript, chamando o arquivo index.php apenas se o que foi requisitado não existir.
Leozitho, obrigado pela ajuda...
Mas essas regras não solucionaram meu problema.
O meu .htaccess está assim:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z]+)/?$ ./modulos/$1.php [L]
RewriteRule ^([a-z]+)/([a-z]+)/?$ ./modulos/$1.$2.php [L]
RewriteRule ^([a-z]+)/([a-z]+)/(.*)/?$ ./modulos/$1.$2.php?acao=$3 [L]
</IfModule>
A ultima regra que gera o problema, as duas primeiras funcionam normalmente!
Estou 2 dias atrasado no cronograma por causa disso.. não sei o que fazer....
[]´s
Por que você não usa o .htaccess como eu te passei e faz o controle de qual arquivo deve ser acessado na pasta "modulos" através do arquivo index.php?
Neste caso o index.php seria o controlador e você não precisaria fazer o controle de qual arquivo deve ser acessado através do .htaccess.
Ao meu ver, dessa forma como eu disse seria mais fácil e assim que costumo utilizar em meus projetos.
Um abraço!
Leozitho
usando seu .htaccess meus links
/noticias
/eventos
/qualquercoisa
nao funcionao e ele agora chama a raiz do servidor.
no meu antigo estava assim:
RewriteRule ^(.*)$ index.php?pg=$1
como voce pega as informações /noticias/ID/Titulo pelo seu .htaccess ?
Use caminhos ABSOLUTOS para CSS, JS e imagens que tudo ficará bem...
>
como voce pega as informações /noticias/ID/Titulo pelo seu .htaccess ?
Pra pegar as informações é só usar a função explode.
Você pode fazer algo assim:
$requisicao = $_SERVER['REQUEST_URI'];
$requisicao = explode('?', $requisicao);
$requisicao = reset($requisicao);
$requisicao = explode('/', $requisicao);
$parte1 = array_key_exists(1, $requisicao) ? $requisicao[1] : '';
$parte2 = array_key_exists(2, $requisicao) ? $requisicao[2] : '';
$parte3 = array_key_exists(3, $requisicao) ? $requisicao[3] : '';
$parte4 = array_key_exists(4, $requisicao) ? $requisicao[4] : '';
$parte5 = array_key_exists(5, $requisicao) ? $requisicao[5] : '';
É só uma sugestão. :)
>
Use caminhos ABSOLUTOS para CSS, JS e imagens que tudo ficará bem...
Boa tarde Rick!
eu já deixei os caminhos absolutos. Porém quanto insiro a terceira regra deixa de funcionar:
RewriteRule ^([a-z]+)/([a-z]+)/(.*)/?$ ./modulos/$1.$2.php?acao=$3 [L]
o caminho dos arquivos passam a ter o /modulos/, o que não poderia acontecer.
A sugestão do Leozitho de tratar tudo na index não rola agora pois estou no fim do sistema, seria inviavel mexer nisso agora.
Alguem mais sugere algo?
[]´s
Valeu leozitho eu uso o explode, como nao funcionou com sua .htaccess aqui pensei em algo diferente + beleza.
Rick valeu, coloquei tudo em link absoluto e funcionou.
Trabalho da POHA rs mais fluiu bem.
Pinguim estou tentando pensar em algo para te ajudar!
Eu tava olhando o .htaccess do CodeIgniter aqui e tem uma regra assim:
RewriteCond $1 !^(index\.php|img|css|js|robots\.txt)
Esta regra serve para ignorar os arquivos "index.php" e "robots.txt" e as pastas "img", "css" e "js".
>
Eu tava olhando o .htaccess do CodeIgniter aqui e tem uma regra assim:
RewriteCond $1 !^(index\.php|img|css|js|robots\.txt)
Esta regra serve para ignorar os arquivos "index.php" e "robots.txt" e as pastas "img", "css" e "js".
Léo!
Testei esta condição também, mas infelismente isso ainda nao foi a solucao :/
O problema persiste.
Estou procurando alguma solução e também aguardando algumas sugestoes. Se tiver algo ai, por favor, poste aqui...
abraço!
mais alguem pode me ajudar???
Já tentou usar a seguinte regra abaixo e colocar o caminho completo dos arquivos de CSS e JS ?!
RewriteRule !\.(gif|jpg|jpeg|png|css|js|swf|php|xml|ani|cur|icon|doc|docx|pdf)$ index.php [L]