2013-09-02 7 views
7

Ich habe dies viel Zeit getan. Aber als auch ich stecke hier wieder (auf einem anderen Server) und kann nicht herausfinden, was das Problem ist.Entfernen Sie index.php von URL in Codeigniter

Abgeschlossen .htaccess Bearbeitung

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /glt.me/CI/ 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /glt.me/CI/index.php/$1 [L] 
</IfModule> 

<IfModule !mod_rewrite.c> 
ErrorDocument 404 /index.php 
</IfModule> 
  • Rewrite-Modul (wie pro Kundenbetreuung perons sagt)
  • Fehler aktiviert ist:

    Internal Server Error

    Der Server hat einen internen angetroffen Fehler oder Fehlkonfiguration und konnte Ihre Anfrage nicht abschließen.

    Wenden Sie sich bitte an den Serveradministrator, [email protected], und informieren Sie ihn über den Zeitpunkt, zu dem der Fehler aufgetreten ist, und alles, was Sie möglicherweise getan haben, dass der Fehler verursacht haben kann.

    Weitere Informationen zu diesem Fehler sind möglicherweise im Fehlerprotokoll des Servers verfügbar.

    Darüber hinaus wurde ein 500 Internal Server Error Fehler beim Versuch, ein ErrorDocument verwenden, um die Anforderung zu behandeln.

Test Dieser Fall:

http://glt.me/CI/test 
http://glt.me/CI/index.php/test 
+1

Sie benötigen eine Fehlerprotokolle zu überprüfen, um zu sehen, was es –

+1

@JonLin verursacht - Erraten mehr Spaß macht. Protokolle zu überprüfen ist wie das Lesen von Dokumentationen: nur die Schwachen machen es ;-) –

Antwort

6

Dies ist der einfache Weg, und es funktioniert gut index.php aus Ihrer URL

RewriteEngine on 
RewriteCond $1 !^(index\.php|uploads|css|js|lib|img|bootstrap|robots\.txt) 
RewriteRule ^(.*)$ /manage/index.php/$1 [L] 

instead of manage put your own application folder name. 
+0

Arbeitete. Domäne aus RewriteRulke-Zeile entfernt. RewriteRule^(. *) $ /CI/index.php?/$1 [L] – TechCare99

+0

Ich habe diesen Code versucht 'RewriteRule^(. *) $ Index.php/$ 1 [L]' Aber immer noch kann ich Sehen Sie die Seite in beide Richtungen http://www.domain.com/about-us, http://www.domain.com/index.php/about-us und http://www.domain.com /index.php?/about-us –

+0

die Erzeugung von SEO-Fehler, dh doppelte Titel-Tag und doppelte Meta-Beschreibung –

1

Prüfen Sie zunächst, ob Ihr Apache ist mod_rewrite unterstützen. Wenn ja, fügen Sie eine .htaccess Datei hinzu. Meine codeigniter .htaccess-Datei ist:

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

schließlich in Ihrer Konfigurationsdatei, Ihre base_url ändern, entfernen index.php aus, dass, wenn Sie hinzugefügt haben.

2

Verwenden folgenden htaccess Code zum Entfernen index.php aus Ihrer codeigniter url

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

Nö. gleicher Fehler. – TechCare99

2

Obwohl Ihr zu entfernen Der Client hat bestätigt, dass das Rewrite-Modul funktioniert. Was bestätigen Sie nicht selbst? Erstellen Sie eine PHP-Datei im Stammverzeichnis des Projekts mit dem folgenden Code und versuchen Sie, die Datei zu durchsuchen.

<?php 
if(!function_exists('apache_get_modules')){ 
     echo 'Rewrite module not available'; 
}else{ 
    if(in_array('mod_rewrite',apache_get_modules())) 
     echo 'Rewrite module enabled'; 
} 
+0

ist es aktiviert .. – TechCare99

0
DirectoryIndex index.php 
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA] 
RewriteRule ^pages/.*$ http://localhost/test/? [R=301,L] 
0

Ich wollte hier beitragen, wie ich mich da mit war. Ich verwende IIS5.1 für die Entwicklung nur (Highly nicht zu empfehlen!)

1- Vergewissern Sie sich, dass Sie Datei config.php hat:

$config['index_page'] = ''; 

2- Meine App nicht auf dem Stammordner ist, Es ist bei localhost/CodeIgniter /. Ich aktualisierte config.php zu:

$config['base_url'] = 'http://localhost/CodeIgniter/'; 

3- Sie benötigen Mod-Rewrite Fähigkeiten. Dies ist in die meisten Server eingebettet, aber IIS 5.1 benötigt ein separates Tool.Ich benutzte: IIS Mod-Rewrite von micronovae. Es ist kostenlos, solange Sie es verwenden, auf localhost

ich den folgenden Code setzen (statt CodeIgniter, setzen Sie den Namen des Ordners):

RewriteEngine on 
RewriteCond $0 !^/CodeIgniter/(css|js|swf|images|system|tools|themes|index\.php) [NC] 
RewriteRule ^/CodeIgniter/(.*)$ /CodeIgniter/index.php/$1 [L] 

Wenn Ihre Anwendung an der Wurzel ist, der Code, den Sie sollte verwenden würde einfach sein:

RewriteEngine on 
RewriteCond $0 !^(css|js|swf|images|system|tools|themes|index\.php) [NC] 
RewriteRule ^(.*)$ index.php/$1 [L] 

Hoffe es hilft.

0

Es sind nur drei Schritte erforderlich, um index.php von der URL in Codeigniter in der WAMP-Umgebung zu entfernen.

1) .htacess Datei parallel zur Anwendung Inhaber erstellen und kopieren Sie einfach vorbei an dem folgenden Code ein:

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) ändern $ config [ 'index_page'] zu leeren in config.php in Bewerbungsmappe als unten:

$config['index_page'] = ''; 

3) Aktivieren Sie "rewrite_module" des Apache.

Starten Sie Ihren Apache neu und es ist fertig.

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

Verwandte Themen