/ / Como faço para remover 'index.php' de URL no CodeIgniter? - php, codeigniter

Como faço para remover 'index.php' do URL no CodeIgniter? - php, codeigniter

Como faço para remover index.php do meu URL no CodeIgniter?

Eu removi index.php do meu arquivo de configuração, e eu corri meu rewrite_module no Apache (2.2.11) e meu .htaccess arquivo é:

RewriteEngine on

RewriteCond $1 !^(index.php|images|captcha|css|js|robots.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

Agora, sempre que clico em qualquer link, mostra que o URL não foi encontrado. Qual é o problema?

Respostas:

4 para resposta № 1

Experimente isso em sua .htaccess file: Os comentários devem ajudar a ajustá-lo para você ...

Isso funciona perfeitamente para mim em várias instalações do site CodeIgniter. Além disso, se o mod_rewrite não estiver instalado, ele o enviará para uma página 404 (ou você pode alterá-lo para o seu propósito).

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

#"system" can be replaced if you have renamed your system folder.
RewriteCond %{REQUEST_URI} ^system.*
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

#This last condition enables access to the images and css folders, and the robots.txt file
RewriteCond $1 !^(index.php|(.*).swf|images|robots.txt|css|docs|cache)
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.
ErrorDocument 404 /application/errors/404.php
</IfModule>

Verifique seu arquivo de hosts virtuais e veja se você tem esses itens definidos - eles podem permitir que seu arquivo .htaccess reescreva o arquivo. URL corretamente:

Options FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all

3 para resposta № 2

Este 100% funciona, eu já tentei. o seguinte em seu .htaccess Arquivo:

RewriteEngine On
RewriteCond $1 !^(index.php|(.*).swf|robots.txt)
RewriteRule ^(.*)$ index.php/$1 [L]

2 para resposta № 3

Eu também tive um problema com a regra de reescrita sugerida no guia do usuário do CodeIgniter. Eu resolvi isso removendo a barra da frente do index.php

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

0 para a resposta № 4

Primeiro de tudo, certifique-se de ter definido um controlador padrão. Então, certifique-se de construir URLs de tal forma que existe um controlador associado a eles. Por exemplo,

Pagina inicial:

example.com/home/

Ou para o Sobre nós página:

example.com/about/

Verifique também se você ativou o módulo de modificação de regravação.


0 para a resposta № 5

Eu também tive esse problema e descobri que a resposta de Shane me ajudou a sair. WAMP.

RewriteBase /mysite/

o mysite é o alias como definido no Apache. Isso funcionou para todos os meus sites.


0 para a resposta № 6

.htacess

RewriteEngine on

#Any HTTP request other than those for index.php,
#assets folder, files   folder and robots.txt
#is treated as a request for your index.php file.

RewriteCond $1 !^(index.php|assets|files|robots.txt)
RewriteRule ^(.*)$ index.php/$1 [L]

depois disso, vá para application/config/config.php e modifique estas duas variáveis ​​com os valores mencionados abaixo.

$config["base_url"] = "";

e

$config["index_page"] = "";


0 para resposta № 7

Para todos os meus projetos da Codeigniter, eu uso o código .htaccess abaixo:

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

Eu espero que isso ajude.