9 Stimmen

index.php in codeigniter 2.1.0 entfernen

Ich versuchte alles auf Google im Zusammenhang mit dem Entfernen index.php von URL in codeigniter aber keine Lösung für mich gearbeitet Ich verwende Codeigniter Version 2.1.0 Wie kann ich index aus meiner URL entfernen?

Gracias

22voto

Raphael Caixeta Punkte 7744

En application/config.php sich vergewissern, dass

$config['index_page'] = "";

Dann setzen Sie dies als Ihre .htaccess Datei:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    #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> 

Sie sind bereit!

5voto

eric.itzhak Punkte 15172

Die Lösung von Raphael Caixetas hat bei mir nicht funktioniert, aber diese hier schon:

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

2voto

itsme Punkte 47081

Ich habe dies auf Apache2 auf vielen verschiedenen Hostings getestet und es funktioniert hervorragend.

diese htaccess verwenden

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

stellen Sie sicher, dass Sie enabled mod_rewirte mit einer phpinfo();

dann tun Sie dies in config/config.php:

$config['index_page']   = '';
|
| 'AUTO'            Default - auto detects
| 'PATH_INFO'       Uses the PATH_INFO
| 'QUERY_STRING'    Uses the QUERY_STRING
| 'REQUEST_URI'     Uses the REQUEST_URI
| 'ORIG_PATH_INFO'  Uses the ORIG_PATH_INFO
|
*/
$config['uri_protocol'] = 'AUTO';

Wenn es noch nicht funktioniert, versuchen Sie, die $config['uri_protocol']='AUTO' zu einer der aufgeführten innerhalb application/config/config.php Datei in Zeile 40/54:

manchmal habe ich : REQUEST_URI 代わりに AUTO o "QUERY_STRING" für goDaddy-Hostings

1voto

Stanley Punkte 3765

Haben Sie versucht, das Beispiel aus dem CodeIgniter-Benutzerhandbuch zu verwenden?

Standardmäßig wird die Datei index.php in Ihre URLs aufgenommen:

example.com/index.php/news/article/my_article

Sie können diese Datei leicht entfernen, indem Sie eine .htaccess-Datei mit einigen einfachen Regeln. Hier ist ein Beispiel für eine solche Datei, die die "negative" Methode, bei der alles außer den angegebenen Elementen umgeleitet wird:

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

Im obigen Beispiel werden alle HTTP-Anfragen außer denen für index.php, images und robots.txt als eine Anfrage für die Datei index.php Datei behandelt.

http://codeigniter.com/user_guide/general/urls.html

1voto

user2429569 Punkte 91

Prüfen Sie Ihre httpd.conf-Datei

ändern

AllowOverride None

a

AllowOverride All

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X