Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Knitter

[Resolvido] mod_rewrite com alias em localhost + codeigniter

Mensagens Recomendadas

Knitter

Boas,

Estou com alguns problemas em configurar o sistema de desenvolvimento local para um projecto. Já estou farto de andar às voltas e não consigo perceber onde está o erro ou o que estou a fazer de errado.

Tenho o projecto a funcionar correctamente no servidor de produção e estou a tentar repor a cópia de desenvolvimento que perdi. Neste momento, ao aceder ao URL local, obtenho sempre um 404 fornecido pelo CodeIgniter, pelo que não sei onde o problema estará.

As definições relevantes para o CI são:

$config['base_url']	= "http://localhost/teste/";
$config['index_page'] = ""; //para usar mod_rewrite

No .htaccess tenho indicado:

RewriteEngine on
RewriteBase /teste/
RewriteCond $1 !^(index\.php|_media|_resources|_uploads|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]

No httpd.conf, está definido um alias para a directoria com as configurações:

<Directory "/Users/sergiolopes/Working/teste/www">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

Por mais alterações que faça, o CI indica-me sempre que a página não foi encontrada e mostra-me um 404. Não tenho erros no log do apache que estejam relacionados com o mod_rewrite, e não consigo ver o que se possa estar a passar.

Alguma alma iluminada consegue ver o erro?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Knitter

Não estou em Windows, estou em OS X, de qualquer modo já tive isto a funcionar localmente e não percebo o que está diferente nesta configuração, para todos os efeitos os ficheiros de configuração deviam estar escritos da mesma forma. A única coisa que se deve ter em consideração em instalações locais será quando se usam Alias, e neste caso adicionei a instrução RewriteBase para isso mesmo. Noutros está a funcionar correctamente neste não.

Tutoriais não faltam, mas se vires, vão todos bater nas configurações que tenho acima.

O pior disto é que não tenho erros nem nos logs do apache nem no CI, não consigo descobrir qual é o URL que está a ser invocado e que está a causar problemas.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Knitter

Não, o firebug não ajuda.

Estou convencido que o problema está no CI e não no .htaccess, vou remover todas as instruções e configurar o CI para a sua configuração base e ver o que se passa a partir daí.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pedrotuga

Eu já tive exactamente o mesmo problema, tinha um site a funcionar na dreamhost, os gajos mudaram-me de servidor e aquilo deixou de funcionar, nunca percebi porquê, como não tinha acesso a logs do mod_rewrite, pedi ajuda ao suporte dos gajos e disseram-me que não podiam ( não sabiam )  ajudar em questões daquele tipo. Não solucionei o problema, acabei por desistir do mod_rewrite e deixar o index.php lá no meio.

O rewrite log não permite ver em que é que os pedidos são mapeados? Começaria por aí talvez.

Se não te safares olhando para os logs do apache... n sei, eu tentaria este pequeno hack, nem sei se é possível:

manda coisas para o log de erros do codigniter o mais cedo que puderes, na classe base controller, ou lá no sítio onde aquilo recebe o URL e vê o resultado. É uma das vantagens de ser uma framework numa linguagem interpretada, podes modifica-la enquanto a usas.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Knitter

2.2.13, é a versão actual presente no Snow Leopard, de qualquer modo só poderei confirmar hoje ao fim do dia, até lá não tenho possibilidade de voltar a mexer no sistema e confirmar se é do CI ou do apache.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Knitter

Problema resolvido. Estava relacionado com as configurações do CI, a opção "uri_protocol" estava em REQUEST_URI, e isso estava a fazer com que o CI estivesse à procura dos controladores no local errado, com ou sem htaccess. Mudei para AUTO para que a detecção seja automática e o problema está resolvido.

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.