2015-02-14 14 views
5

Ich versuche .htaccess auf CodeIgniter zu verwenden, aber es funktioniert nicht.Codeigniter Htaccess und URL Redirect Probleme

habe ich bereits gesetzt:

AllowOverride All 
$config['index_page'] = ''; 
$config['uri_protocol'] = 'REQUEST_URI'; 

ich XAMPP unter Windows verwende. Mein

.htaccess:

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

Meine URL enthält noch index.php und, wenn ich versuche, es manuell zu entfernen, es gibt einen 404-Fehler

Auch meine andere Sorge ist meine Login-Seite: wenn ich anmelden , meine URL bleibt auf der Scheckseite hängen.

Ich frage mich, wie ich meine URL umschreiben, um auf die Startseite zu wechseln, anstatt auf der Scheckseite zu bleiben.

public function check(){ 
     $this->load->model('check'); 
     $logcheck = $this->check->check($this->input->post('username'),$this->input->post('password')); 

     if($logcheck == "admin"){ 
      $this->load->view('home'); 
     }else{ 
      $this->load->view('login'); 
     } 
    } 
+0

Ich habe die htaccess zu arbeiten, indem Sie es aus dem Anwendungsordner in meinen Stammordner übertragen. frage mich, warum sie es dort platzieren, wenn Sie es sowieso verschieben müssen – magicianiam

+0

Jeder Ordner hat seine eigene htaccess-Datei, die verhindert, dass bestimmte (System-) Ordner wie Anwendung oder System krähen. Sie sollten es dort mit Inhalt so lassen wie es ist. Für den Stammordner müssen Sie eine eigene .htaccess-Datei erstellen. – Tpojka

+0

Welche URL erhalten Sie nach der Anmeldung und welche URL Sie erwartet haben –

Antwort

3

Diese einfache .htaccess wird Ihr Index entfernen.php

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

ändern Prüffunktion wie diese

public function check(){ 
    $this->load->model('check'); 
    $logcheck = $this->check->check($this->input->post('username'),$this->input->post('password')); 

    if($logcheck == "admin"){ 
     //may be you need to set login credential into session 
     redirect('Phonebook/home/'); 
     //$this->load->view('home'); 
    }else{ 
     $this->load->view('login'); 
    } 
} 

und Ihre Home-Funktion wird wie sein diese

public function home(){ 
     //remember you need to check login validation from session 
     $this->load->view('home'); 
} 

redirect Funktion nutzen zu erinnern Sie haben url Helfer geladen.
Vielleicht helfen Sie mir

+0

Vielen Dank es Woks großartig, Frage kann ich den Controller mit htaccess aus der URL entfernen? – magicianiam

+0

Sie können Codeigniter Routen für diese –

+0

verwenden können Sie mich auf ein Beispiel verweisen? Danke und sehr geschätzt :) – magicianiam

0

habe ich gefunden, dass, wenn Sie an diesen Ort gehen hier http://www.insiderclub.org/downloads und dann auf den Link klicken „Hier ist es“ die .htaccess Zip-Ordner herunterladen gibt es etwa 5 verschiedene geeignet diejenigen für codeigniter für .htaccess

Nicht sicher, wo diese AllowOverride All ins Spiel kommt?

Auch

$config['uri_protocol'] = 'REQUEST_URI';

Machen

$config['uri_protocol'] = 'AUTO';

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

$config['index_page'] = '';

Vergewissern Sie sich, dass Sie Ihre route.php konfiguriert haben.

Haupt-htaccess-root. Sie brauchen nicht auf die anderen .htaccess

Die erste berühren Sie in zip finden, ist dies ein

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

scheint mit meinem xampp und codeigniter 2 & 3 gut zu funktionieren, aber die, die für den Download versuchen .

Dies ist die zweite im Zip-Ordner für .htaccess für wamp mehr denken usw.

<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> 
+0

Immer noch nicht funktioniert. – Paritosh

+0

Sie haben nicht für mich gearbeitet. – Tung