2013-08-13 13 views
6

Ho usato CodeIgniter in XAMPP. Non c'era nessun problema per reindirizzare a un URL di funzione (ad esempio, function1):Come rimuovere index.php in Wamp?

http://localhost/function1 

Quando ho cambiato al WAMP, ho avuto un problema. Non è stato possibile reindirizzare a function1. Tuttavia, function1 è ancora accessibile all'indirizzo:

http://localhost/index.php/function1 

Come configurare WAMP e CodeIgniter per rimuovere index.php? Per poter eseguire la funzione durante l'esecuzione con XAMPP.

Grazie.

+2

Qual è il problema: http://ellislab.com/codeigniter/user-guide/general/urls.html? –

risposta

10

Si prega di provare la seguente:

1) Creare file .htaccess in parallelo alla cartella dell'applicazione e basta copiare e incollare il seguente codice:

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) Modifica $config['index_page'] a vuoto in config.php nella cartella dell'applicazione come di seguito:

$config['index_page'] = ''; 

3) Attivare "rewrite_module" di apache. Clicca sul simbolo WAMP -> Apache -> moduli Apache -> rewrite_module

Ora puoi accedere al tuo sito senza index.php in url.

2

Creare un file .htaccess se non si dispone già di uno e aggiungere questo codice in esso:

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

Accertarsi di posizionare questo nella stessa directory del index.php.

2

Solo tre passaggi sono necessari per rimuovere index.php dall'URL in Codeigniter in ambiente WAMP.

1) Creare il file .htacess in parallelo al supporto delle applicazioni e basta copiare passato il seguente codice:

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) Variazione $ config [ 'index_page'] a vuoto nel file config.php nella cartella dell'applicazione come sotto:

$config['index_page'] = ''; 

3) Abilitare "rewrite_module" di apache.

Riavvia l'apache e il suo completamento.

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

2

La regola mod_rewrite suggerito nella documentazione ufficiale di CodeIgniter in http://ellislab.com/codeigniter/user-guide/general/urls.html quali è

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

funzionato perfettamente per me su WAMP

Questo potrebbe anche funzionare:

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

Nel se due varianti, l'unica differenza è la condizione. Fondamentalmente, ciò che conta è la regola di riscrittura. La condizione può dipendere dal tuo requisito.

Entrambi questi non funzionavano per me in precedenza su WAMP. Tuttavia, il problema era nelle impostazioni di Apache. rewrite_module non è stato abilitato. Quindi, controlla che sia abilitato. È possibile verificare se è abilitato utilizzando phpinfo() e controllare l'elenco dei moduli caricati.

Se non è abilitato, è possibile abilitarlo utilizzando il gestore WampServer (accesso dalla barra delle applicazioni) Vai Apache> moduli di Apache e verificare 'rewrite_module'

O

Aprire httpd.conf e controllare se LoadModule rewrite_module modules/mod_rewrite.so non è commentato.

È necessario riavviare WAMPserver per attivare le modifiche.

+0

La seconda soluzione ha funzionato perfettamente sulla mia installazione WAMP di CI 2.2.0. Ho appena copiato il mio .htaccess e ha funzionato immediatamente. Sembra funzionare senza RewriteBase che mi piace. – DEUTSCHWULF