10.1.5 Uma Palavra Sobre o mod_rewrite
Ocasionalmente, um novo usuário irá esbarrar em problemas com o mod_rewrite, então vou abordá-los superficialmente aqui. Se a página de boas-vindas do CakePHP parecer um pouco sem graça (sem imagens, sem cores e sem os estilos css), isso é um indício de que o mod_rewrite provavelmente não esteja funcionando em seu sistema. Aqui estão algumas dicas para lhe ajudar a deixar tudo funcionando corretamente:
-
Certifique-se de que a sobrescrita de opções do .htaccess está habilitada: em seu arquivo httpd.conf, você deve ter uma parte que define uma seção para cada Directory do seu servidor. Certifique-se de que a opção
AllowOverrideesteja com o valorAllpara o Directory correto. Por questões de segurança e performance, não definaAllowOverrideparaAllpara<Directory />. Ao invés disso, procure o bloco<Directory>que se refere ao seu diretório raíz de seu website. -
Certifique-se de estar editando o arquivo httpd.conf ao invés de algum específico, que seja válido apenas para um dado usuário ou para um dado site.
-
Por alguma razão, você pode ter obtido uma cópia do CakePHP sem os arquivos .htaccess. Isto algumas vezes acontece porque alguns sistemas operacionais tratam arquivos que começam com '.' como arquivos ocultos e normalmente não fazem cópias deles. Certifique-se de obter sua cópia do CakePHP diretamente da seção de downloads do site ou de nosso repositório SVN.
-
Certifique-se de que o Apache esteja carregando o mod_rewrite corretamente! Você deve ver algo como
LoadModule rewrite_module libexec/httpd/mod_rewrite.soou (para o Apache 1.3)AddModule mod_rewrite.cem seu httpd.conf.
Se você não quiser ou não puder carregar o mod_rewrite (ou algum outro
módulo compatível) em seu servidor de produção, você vai precisar usar o
recurso de URLs amigáveis do CakePHP. No arquivo
/app/config/core.php, descomente uma linha parecida com:
Configure::write('App.baseUrl', env('SCRIPT_NAME')); Configure::write('App.baseUrl', env('SCRIPT_NAME'));
E remova também os arquivos .htaccess em:
/.htaccess /app/.htaccess /app/webroot/.htaccess
/.htaccess/app/.htaccess/app/webroot/.htaccess
Com isto, suas URLs ficarão parecidas com www.exemplo.com/index.php/nomecontroller/nomeaction/param ao invés de www.exemplo.com/nomecontroller/nomeaction/param.


























