Por padrão, a estrutura roteia tudo por meio do arquivo index.php. Você pode alterar esta funcionalidade padrão usando mod_rewrite.
Ajuste seu arquivo config.php em /application/config/config.php
Mudança:
$config['index_page'] = 'index.php';
Para:
$config['index_page'] = ' ';
Em seguida, crie um arquivo .htaccess na pasta raiz usando as seguintes regras de reescrita:
RewriteEngine on
RewriteCond $1 !^(index.php|css|js|images|robots.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
Agora, em vez de ir para http://example.com/index.php, você pode apenas fazer http://example.com
Pegadinhas
Se não estiver usando o diretório raiz em seu servidor da web, você precisará alterar a última regra de reescrita para corresponder ao caminho do diretório raiz do aplicativo. Por exemplo, se meu aplicativo estava localizado em:
/var/www/html/app1
Eu teria que incluir “app1” na última regra assim:
RewriteRule ^(.*)$ /app1/index.php/$1 [L]
Se a regra de reescrita não estiver funcionando, certifique-se de permitir arquivos .htaccess em seu arquivo de configuração do Apache. A seção do diretório deve conter uma opção AllowOverride All:
<Directory “/ var / www / html / app1”>
Opções Índices FollowSymLinks
AllowOverride Todos os
pedidos permitir, negar
Permitir de todos
</Directory>
Não se esqueça de que qualquer mudança no arquivo de configuração do Apache exige a reinicialização do serviço!