CodeIgniter removendo index.php do url

159

Meus URLs atuais são assim [mysite]index.php/[rest of the slug].
Eu quero tirar index.phpesses URLs.

mod_rewriteestá ativado no meu servidor apache2. In config,$config['index_page'] = '';

Meu .htaccessarquivo raiz do codeignitor contém,

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]

Mas ainda não está funcionando. Onde eu estou errando?

Nihar Sarangi
fonte
2
possível duplicata Como remover "index.php" no caminho do codeigniter
stormdrain
Por que esta pergunta tem tantas respostas duplicadas
Tilak Maddy

Respostas:

239

Tente o seguinte

Abra o config.php e faça o seguinte substitui

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

para

$config['index_page'] = ""

Em alguns casos, a configuração padrão para uri_protocolnão funciona corretamente. Apenas substitua

$config['uri_protocol'] ="AUTO"

de

$config['uri_protocol'] = "REQUEST_URI"

.htaccess

RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA] 

Nota: o código .htaccess varia dependendo do servidor de hospedagem. Em alguns servidores de hospedagem (por exemplo: Godaddy), você precisa usar um extra? na última linha do código acima. A seguinte linha será substituída pela última linha no caso aplicável:

// Replace last .htaccess line with this line
RewriteRule ^(.*)$ index.php?/$1 [L,QSA] 
Rahul Tailwal
fonte
4
Eu tentei esse código, RewriteRule ^(.*)$ index.php/$1 [L]mas ainda assim posso visualizar a página nos dois domínios domain.com/about-us, domain.com/index.php/about-us e domain.com/index.php?/about-us, que geram erro SEO ou seja duplicado tag título e descrição duplicado meta
Mossadegh Khan
Obrigado pela resposta, tive o mesmo problema e, ao adicionar o primeiro RewriteCond, ele funciona. Você pode explicar por que o manual (aqui: codeigniter.com/userguide3/general/… ) não o menciona?
Claudio
Obrigado pela sua resposta, eu tenho mesmo problema do tanque-auth
striker_axel
$_POSTou isset($_POST)não funciona depois de adicionar isso.
DCK
1
e não se esqueça de alterar a configuração do apache, conforme mencionado em stackoverflow.com/a/14807463/1537413
Dika
134

Etapa: -1 Abra a pasta "application / config" e abra o arquivo "config.php". encontre e substitua o código abaixo no arquivo config.php.

//find the below code   
$config['index_page'] = "index.php" 
//replace with the below code
$config['index_page'] = ""

Etapa: -2 Vá para a pasta CodeIgniter e crie .htaccess

Path:
Your_website_folder/
application/
assets/
system/
.htaccess <——— this file
index.php

Etapa: -3 Escreva o código abaixo no arquivo .htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule>

Etapa: -4 Em alguns casos, a configuração padrão para uri_protocol não funciona corretamente. Para resolver esse problema, basta abrir o arquivo "application / config / config.php", localize e substitua o código abaixo

//Not needed for CodeIgniter 3 its already there.
//find the below code
$config['uri_protocol'] = "AUTO"
//replace with the below code
$config['uri_protocol'] = "REQUEST_URI" 

Isso é tudo, exceto no servidor wamp, ele não funciona porque rewrite_module por padrão desabilitado, portanto, precisamos ativá-lo. para isso, faça o seguinte

  1. Clique esquerdo no ícone WAMP
  2. Apache
  3. Módulos Apache
  4. Clique esquerdo rewrite_module

Documentação original

Exemplo de Link

MaxEcho
fonte
6
Eu tive que colocar o .htaccess na pasta raiz em vez de pasta "aplicação" para fazer este trabalho
Mawardy
Eu não tenho a pasta CodeIgniter. Do que você está falando?
Nicolas S.Xu
1
ele remove index.php mas eu preciso remover barra extra '/' também
Pradeep Kumar Prabaharan
depois de alterar o config.php e criar o arquivo .htaccess. Estou recebendo o erro Erro de análise: erro de sintaxe, inesperado '$ config' (T_VARIABLE) no aplicativo \ config \ config.php na linha 55
Fawwad 17/18
Obrigado pela resposta. Para mim, eu precisava atualizar meu arquivo htaccess como mostrado e, em seguida, certificar-me de que era um irmão da pasta do sistema, não dentro dela.
Kiky Rodriguez
44

Passo 1 :

Adicione isso no arquivo htaccess

<IfModule mod_rewrite.c>
  RewriteEngine On
  #RewriteBase /

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^ index.php [QSA,L]
</IfModule>

Passo 2 :

Remova o index.php na configuração do codeigniter

$config['base_url'] = ''; 
$config['index_page'] = '';

Etapa 3 :

Permitir a substituição do htaccess na configuração do Apache (comando)

sudo nano /etc/apache2/apache2.conf

e edite o arquivo e mude para

AllowOverride All

para pasta www

Passo 4 :

Reescrita de modificação do apache ativada (comando)

sudo a2enmod rewrite

Etapa 5:

Reinicie o Apache (comando)

sudo /etc/init.d/apache2 restart
Dino
fonte
3
"AllowOverride All" no apache2.conf resolveu o problema para mim, pois os preenchimentos .htaccess não são usados ​​por padrão.
Laurent Jégou
1
Eu gostaria de poder lhe dar um bônus por isso! Salvou o meu dia. Passou 2 horas depois disso: |
Kiran P.
1
Parece para recente Linux Distros a primeira coisa que precisa fazer é editar a regra AllowOveride
Nasz Njoka Sr.
Finalmente consegui que funcionasse. Obrigado. A regra AllowOveride me ajuda com esse problema. Estou usando o ubuntu 16.04
Apit John Ismail 8/17
Excelente solução, Thanks :)
Razib Al Mamun
16
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]

usar

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$1 [PT,L]

se você tiver URL neste pedido, site.com/index.php/class/method/id

NB: remova index.php em config.php deve ser config [index_page] = ""

Nota: observe a diferença na última linha em vez de $ 0 e use $ 1

user3464848
fonte
isso funciona para mim. As respostas acima não. Não testei as respostas abaixo.
Jam Ville
Isso funcionou para mim, mas eu tive que mudar o protocolo de uri de 'AUTO; para 'REQUEST_URI' assim: $ config ['uri_protocol'] = 'REQUEST_URI';
Isabelle martz
RewriteRule .* index.php/$1 [PT,L]- isso não passará o caminho da URL, a menos que você altere o RewriteRule padrão de .*para (.*). No entanto, se você estiver usando $config['uri_protocol'] = 'REQUEST_URI';, isso é irrelevante de qualquer maneira.
MrWhite 25/01
16

Etapa 1 => Coloque o arquivo .htaccess na pasta raiz, onde existem pastas de aplicativos e sistema.

Etapa 2 => Se o seu caminho da web usando a subpasta como - seudominio.com/projeto/ -, use o seguinte código no arquivo htaccess

RewriteEngine on
RewriteBase    /project/
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /project/index.php/$1 [L]

Se o seu caminho da web usando uma pasta raiz como - seudominio.com -, use o seguinte código no arquivo htaccess

RewriteEngine on
RewriteBase    /
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
vinod
fonte
Esta é de longe a melhor e mais completa resposta. coisa de subpasta é o que a torna melhor do que outras respostas.
Bhavik Shah
Esta deve ser a resposta. A resposta votada com a parte sobre: ​​RewriteCond% {REQUEST_FILENAME}! -F RewriteCond% {REQUEST_FILENAME}! -D Isso não funcionou para mim.
GunWanderer
11

no seu htaccess, use isso,

RewriteEngine On
RewriteBase /root_folder_name/
RewriteCond %{REQUEST_URI} ^system.*
RewriteCond $1 !^(index\.php|images|js|uploads|css|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

Espero que isto ajude.

yuvaraj bathrabagu
fonte
root_folder_name -> você mudou isso com o nome da pasta raiz ??
Yuvaraj bathrabagu
Sim, eu fiz isso. Coloquei minha raiz codeigniter lá. Isso está correto?
Nihar Sarangi
Amigo, estou usando esse código .htaccess em dois dos meus projetos de IC !! e ambos estão funcionando bem !!
Yuvaraj bathrabagu
11

Existem dois passos:

1) Edite o config.php

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

Para

$config['index_page'] = '’;

2) Criar / Editar arquivo .htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
shafi
fonte
6
  1. criar .htaccessarquivo e colocar esse código

     RewriteEngine on
     RewriteCond $1 !^(index\.php|resources|robots\.txt)
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteRule ^(.*)$ index.php/$1 [L,QSA] 
  2. mudança

    $config['index_page'] = ''; 

remover index.phppresente no config.phparquivo

  1. reescreva a partir do seu servidor.
Siddharth Shukla
fonte
6

1.Crie um novo arquivo .htaccess no diretório raiz.

<IfModule mod_rewrite.c>
RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule>`

2. Vá para o seu arquivo config.php e mude de $config['index_page'] = 'index.php' para$config['index_page'] = ''

Manish Sharma
fonte
6

Resolvido com 2 etapas.

  1. Atualize 2 parâmetros no arquivo de configuração application / config / config.php
$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI';
  1. Atualize o arquivo .htaccess na pasta raiz
<IfModule mod_rewrite.c>
    RewriteEngine On
      RewriteBase /
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
Khachornchit Songsaen
fonte
5

tente este. Pode ajudá-lo, pois está funcionando para mim.

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]

coloque o código no seu arquivo htaccess raiz. e verifique se você tem

$config['index_page'] = '';

no seu arquivo de configuração.

Entre em contato se tiver algum problema.

Aborty
fonte
Era exatamente o que eu estava fazendo.
Nihar Sarangi 5/10
4
+ Copy .htaccess from Application to Root folder
+ edit .htaccess and put

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /ci_test/

    #Removes access to the system folder by users.
    #Additionally this will allow you to create a System.php controller,
    #previously this would not have been possible.
    #'system' can be replaced if you have renamed your system folder.
    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    #When your application folder isn't in the system folder
    #This snippet prevents user access to the application folder
    #Submitted by: Fabdrol
    #Rename 'application' to your applications folder name.
    RewriteCond %{REQUEST_URI} ^application.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    #Checks to see if the user is attempting to access a valid file,
    #such as an image or css document, if this isn't true it sends the
    #request to index.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
    # If we don't have mod_rewrite installed, all 404's
    # can be sent to index.php, and everything works as normal.
    # Submitted by: ElliotHaughin

    ErrorDocument 404 /index.php
</IfModule>

Note: make sure your web server is enable for  "rewrite_module"

+ Remove index.php from $config['index_page'] = 'index.php';
- edit config.php in application/config
- search for index.php
change it from  $config['index_page'] = 'index.php'; to  $config['index_page'] = '';

Assista a estes vídeos para referência https://www.youtube.com/watch?v=HFG2nMDn35Q

KH SolveCode
fonte
4

Bem, todas essas respostas são boas, mas para um novato (o que é feito pela primeira vez), essas são confusas. Existem outros arquivos htaccess que residem no controlador, mas temos que editar ou adicionar o htaccess na pasta principal do projeto.

Esta é a sua pasta codeigniter, onde o arquivo reside como aplicativo, sistema, ativos, uploads etc.

Your_project_folder/
application/
assets/
cgi-bin/
system/
.htaccess---->(Edit this file if not exist than create it)
index.php

Mude este arquivo conforme escrito abaixo:

<IfModule mod_rewrite.c>
  RewriteEngine On
  # !IMPORTANT! Set your RewriteBase here and don't forget trailing and leading
  #  slashes.
  # If your page resides at http://www.example.com/mypage/test1
  # then use RewriteBase /mypage/test1/
  # Otherwise /
  RewriteBase /
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
  # If we don't have mod_rewrite installed, all 404's
  # can be sent to index.php, and everything works as normal.
  # Submitted by: Anand Pandey
  ErrorDocument 404 /index.php
</IfModule>

e sim, claro, você precisa alterar duas linhas de código no aplicativo / config / config.php

//find the below code   
$config['index_page'] = "index.php";
$config['uri_protocol'] ="AUTO" 
//replace with the below code
$config['index_page'] = "";
$config['uri_protocol'] = "REQUEST_URI";
Anand Pandey
fonte
Por alguma razão, todas essas respostas não funcionam para mim. Eu posso acessar as páginas quando adiciono /index.php/ no url.
Bilal Ahmad
3

Desenvolvimento e produção

    # Development
    RewriteEngine On
    RewriteBase /your_local_folder/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond $1 !^(index\.php|images|scripts|styles|vendor|robots\.txt)
    RewriteRule ^(.*)$ index.php/$1 [L]

    #Production PHP5 CGI mode
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond $1 !^(index\.php|images|scripts|styles|vendor|robots\.txt)
    RewriteRule ^(.*)$ index.php?/$1 [L]
cgwCode
fonte
3

Antes de tudo, você precisa no mecanismo de reescrita do servidor apache on.this link irá ajudá-lo

http://www.anmsaiful.net/blog/php/enable-apache-rewrite-module.html

RewriteEngine On
RewriteBase /your_folder_name/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

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

este será o seu arquivo .htaccess. Agora tente. Essa configuração funciona para mim.

vaibhav kulkarni
fonte
2

você pode acessar o arquivo config \ config.php e remover o valor index.php dessa variável

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

crie um arquivo .htaccess e cole esse código nele.

<IfModule mod_rewrite.c>

 Options +FollowSymLinks

 RewriteEngine On
 #Send request via index.php
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.*)$ index.php/$1 [L]

</IfModule>

boa chance

abbas hussen
fonte
2
  Removing index.php from url of codeigniter   

Three steps are require to remove index.php from url in Codeigniter.

1)Create .htacess file in parallel to application holder and just copy past the following code:

RewriteEngine On
RewriteBase /CodeIgniter/
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

2) Change $config['index_page'] to blank in config.php in application folder as below:

$config['index_page'] = '';

3) Enable rewrite_module of apache.
Pritam Chaudhari
fonte
1

Apenas três etapas são necessárias para remover o index.php do URL no Codeigniter

1) Crie o arquivo .htacess em paralelo ao suporte do aplicativo e apenas copie o código a seguir:

RewriteEngine On
RewriteBase /CodeIgniter/
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

2) Altere $ config ['index_page'] para em branco no config.php na pasta do aplicativo como abaixo:

$config['index_page'] = '';

3) Habilite o "rewrite_module" do apache.

Reinicie seu apache e pronto.

Detalhes: http://sforsuresh.in/removing-index-php-from-url-of-codeigniter-in-wamp/

Suresh Kamrushi
fonte
1

Eu acho que toda a sua configuração é boa, mas você está fazendo para deslocar seu arquivo htaccess e adicionar seu htaccess ao arquivo do projeto

project_folder-> htaccess

e adicione este código ao seu htaccess

RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
Yaseen Ahmad
fonte
1

você pode ir para o arquivo application \ config \ config.php e remover o index.php

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

Mudar para

 $ config ['index_page'] = '';

Rafiqul Islam
fonte
1

experimente este RewriteEngine On

        # Removes index.php from ExpressionEngine URLs
        RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>
Kashif
fonte
1

Isso funciona para mim. Testado no codeigniter 3.1.11, PHP 5.6.40 Eu uso um host virtual na minha configuração do apache2 no servidor de teste.

<VirtualHost *:80>
     ServerAdmin [email protected]
     DocumentRoot (__DIR__)
     ServerName mydomain
     ##ErrorLog "logs/dummy-host2.example.com-error.log"
     ##CustomLog "logs/dummy-host2.example.com-access.log" common
     <Directory "(__DIR__)">
        Require all granted
        AllowOverride All
   </Directory>
</VirtualHost>

E /.htaccess conteúdo

    <IfModule mod_rewrite.c>
       RewriteEngine On
       RewriteCond %{REQUEST_FILENAME} !-f
       RewriteCond %{REQUEST_FILENAME} !-d
       RewriteRule ^(.*)$ index.php/$1 [L] 
    </IfModule>
jose insfran
fonte
0

Siga estes passos, seu problema será resolvido

1- Faça o download do arquivo .htaccess aqui https://www.dropbox.com/s/tupcu1ctkb8pmmd/.htaccess?dl=0

2- Altere o nome do diretório CodeIgnitor na Linha # 5. como meu nome de diretório é abc (adicione seu nome)

3- Salve o arquivo .htaccess no diretório principal (abc) da sua pasta codeignitor

4- Altere uri_protocol de AUTO para PATH_INFO no arquivo Config.php

Nota: Antes de tudo, você precisa habilitar o mod_rewrite do httpd.conf do apachi removendo os comentários

Salman Khan
fonte
0

Use este código. Altere a 2ª linha conforme o nome da sua pasta. Onde os arquivos e pastas index.php são aplicados, a pasta do sistema está localizada. Principalmente os problemas acontecem devido à segunda linha. não configuramos o nome da pasta onde o projeto está localizado. Importante é a segunda linha. É simples remover o index.php. RewriteEngine no RewriteBase / project_folder_name RewriteCond% {REQUEST_FILENAME}! -F RewriteCond% {REQUEST_FILENAME}! -D RewriteRule. * Index.php / $ 0 [PT, L]

#RewriteEngine on
#RewriteCond $1 !^(index\.php|images|robots\.txt)
#RewriteRule ^(.*)$ index.php/$1 [L]    

Vá para o arquivo controller / config.php.

config ['index_url'] = '';

Referência para mais estudos.

https://ellislab.com/expressionengine/user-guide/urls/remove_index.php.html

https://ellislab.com/blog/entry/fully-removing-index.php-from-urls

Hafiz Shehbaz Ali
fonte
0

Além dessas respostas, é possível simplesmente adicionar index.php ou editá-lo (se já estiver lá) - por segurança, você deseja desativar o index.php de qualquer maneira, ao listar os arquivos no diretório do site - e depois mudar o conteúdo para

<?php
   header('location:your_required_starting.php'); 
?>
bennyhardjono
fonte
0

Menor: (Opcional)

Tente reiniciar o Apache depois de atualizar o status do mecanismo de reescrita no vhosts como Rewrite ON.

Uma coisa crítica a ser observada:

No arquivo Apache vhosts, verifique se você possui esta linha de script. AllowOverride None Se sim, remova / comente esta linha.

Script do meu arquivo vhosts: (Antes)

<VirtualHost *:80>
    DocumentRoot "/path/to/workspace"
    ServerName ciproject
    ErrorLog "/path/to/workspace/error.log"
    CustomLog "/path/to/workspace/access.log" common
    Directory   "/path/to/workspace">
        Options Indexes FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory> 
</VirtualHost>

Script do meu arquivo vhosts: (Depois)

<VirtualHost *:80>
    DocumentRoot "/path/to/workspace"
    ServerName ciproject
    ErrorLog "/path/to/workspace/error.log"
    CustomLog "/path/to/workspace/access.log" common
    Directory   "/path/to/workspace">
        Options Indexes FollowSymLinks
        #AllowOverride None
        Order allow,deny
        Allow from all
    </Directory> 
</VirtualHost>

Eu enfrentei o mesmo problema, lutei por cerca de 1 dia, tudo estava bem. Mais tarde, pelo método de tentativa e erro, encontrou essa coisa. Depois de remover isso, meu trabalho foi realizado. O URL agora não procura index.php :)

Lalith Kumar
fonte
0

se toda a solução acima não funcionar, na pasta do projeto haverá dois arquivos index.html e index.php, renomeie index.html para index_1.html e navegue no seu projeto.

Mohsin Shoukat
fonte
0

Observe a diferença com o "?" Adicionado caractere após ".php", especialmente ao lidar com o CodeIgniter:

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

vs.

RewriteRule ^ (. *) $ Index.php? / $ 1 [L]

Depende de várias outras coisas. Se não funcionar, tente a outra opção!

eyal_katz
fonte
0

Você pode remover o index.php do url colocando algum código em .htaccess

Caminho do arquivo: raiz> .htacess

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d


RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

Espero que funcione.

Rokan Nashp
fonte
0

No CodeIgniter 3.16, usando o htaccess para

remover o arquivo index.php

& Além disso

redirecionar HTTP para HTTPS

A seguir estão os códigos:

  • vá para o application\config\config.phparquivo

Faça mudanças

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

Para

$config['index_page'] = '';
  • Agora, abra o arquivo .htaccess e atualize os códigos abaixo
RewriteEngine on
RewriteBase /

## Redirect SSL
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]

## Remove fron url index.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond $1 !^/(index\.php|assets/|humans\.txt)
RewriteRule ^(.*)$ index.php/$1 [L] 
Chandan Sharma
fonte