Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
Knitter

[Resolvido] mod_rewrite com alias em localhost + codeigniter

Recommended Posts

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?

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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í.

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.