Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

MacX

CodeIgniter - Routes / URL amigável

Recommended Posts

Bom dia pessoal,

 

Uso CodeIgniter e estou tentando fazer URLs amigáveis. Percebi que para fazer isso, preciso mexer em suas rotas acessando: APPLICATION/CONFIG/ROUTES.PHP.

 

Os links do meu site atualmente estão assim: meusite.com.br/index.php/site/empresa

 

Preciso que fique assim: meusite.com.br/empresa

 

 

Alguém pode me ajudar?

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

3 passos iniciais:

1 - Habilite o suporte a reescrita de URL no apache e libere o módulo rewrite

a. No windows (arquivo httpd.conf)

<Directory "C:/wamp/www/"> (a parte em vermelho pode variar, dependendo do servidor. Não mexa em nada aqui)

Option Indexes FollowSymLinks

AllowOverride No (Nesta parte, mude de 'No' para 'All')

....

</Directory>

...

LoadModule rewrite_module modules/mod_rewrite.so (descomente a linha, retirando o '#')

 

b. No Linux (arquivo /etc/apache2/sites-available/default):

Faça a mesma coisa que o que está em azul acima

Para liberar o módulo rewrite: a2enmod rewrite

 

2 - Crie um arquivo .htaccess no diretório raiz do servidor com o seguinte conteúdo:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ site/index.php/$1 [L]

 

3 - Edite o arquivo application/config/config.php

Deixe as seguintes partes assim:

$config['base_url'] = 'meusite.com.br'; // Altere para o nome do seu site

$config['index_page'] = '';

 

Aí reinicie o servidor. O arquivo application/config/routes.php só serve para definir a rota padrão (default_route) e atalhos para encurtar o acesso a algumas partes do programa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No CodeIgniter é mais simples ainda....

Se já aparece a url amigável, basta seguir os passos já mencionados acima.

 

Vá no arquivo aplicattion/config/config.php

Na linha 29, vai ter mais ou menos isso aqui:

$config['index_page'] = 'index.php';

 

Apenas deixe uma string vazia:

$config['index_page'] = '';

 

e sua url não possuirá mais o '/index.php/'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa fala Massaki,

 

Tentei o que você falou mas nao deu certo, o sistema repetiu a URL, ficou assim:

"meusite.com.br/meusite.com.br/site/empresa" e a pagina nao apareceu.

 

Fala Gabriel,

 

Eu tentei isso tb, mas aí não visualiza a página: "500 Internal Server Error".

Compartilhar este post


Link para o post
Compartilhar em outros sites

$config['base_url'] = 'meusite.com.br'; // Altere para o nome do seu site 

 

Coloque http:// na frente

 

$config['base_url'] = 'http://meusite.com.br'; // Altere para o nome do seu site 

 

 

Já tive esse mesmo problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mude essa linha:

 

$config['base_url'] = 'meusite.com.br';

 

Para:

 

$config['base_url'] = 'http://meusite.com.br/';

 

Faltou colocar o protocolo "http" no início do URL e a barra no final. wink.gif

 

 

EDIT: Não vi que já tinham respondido. :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde pessoal, fiz a mudança acima, porém continou a retornar error 500.

A URL tinha ficado "meusite.com.br/site/empresa".

Depois disso, tentei também tirar o "site" da URL, aceesei o routes.php, e alterei:

 

$route['default_controller'] = "site"

 

para

 

$route['default_controller'] = "";

 

Aí deu pau geral.

 

Alguma luz?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.