Ultimoprofeta Web Blog

Informatica e tecnologia alla portata di tutti!!

Aruba e CodeIgniter – Come risolvere l’errore “No input file specified”

Da quando uso CodeIgniter su Aruba ho sembre dovuto utilizzare una versione vecchia del PHP perchè, per qualche strana ragione, se provavo ad attivare una versione superiore alla 5.2 ottenevo uno strano errore “No input file specified” che mi rendeva impossibile utilizzare il mio lavoro.

Fino ad oggi non era un grosso problema visto che tutti i miei lavori utilizzavano funzioni più o meno standard che andavano bene con le vecchie versioni, oggi però mi sono imbattutto in una funzione nativa che richiedeva almeno PHP 5.3 e quindi era inevitabile aggiornare la mia versione e scontrarsi di nuovo con quel maledetto errore.

Per mia fortuna la soluzione è semplice e bastano poche righe di .htacces per risolvere il problema!

Dalle mie prove ho capito che il problema era la cattiva interpretazione degli URL e di conseguenza un cattivo utilizzo del mod_rewrite di Apache.

Sempre facendo qualche prova ho visto che se omettevo la dicitura index.php dai miei URL e attivavo la riscrittura di Apache tutto funzionava.

Veniamo al codice, la soluzione è estremamente semplice:

  1. Modificate il file config.php che trovate in application/config e alla riga 29 assicuratevi che la variabile sia così: $config[‘index_page’] = ”;
  2. Rimuovere tutti gli index.php dagli URL, cosa non necessaria se usate le funzioni base_url() o simili.
  3. Inserite nella root principale del vostro sito un file .htacces (se non lo avete) e scriveteci al suo interno il seguente codice:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/system.*
RewriteRule ^(.*)$ index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?/$1 [L]
</IfModule>

la cosa da notare rispetto ad un normale utilizzo del mod_rewrite è che nel codice sopra tutte le voci index.php sono seguite da un punto di domanda che permette di intercettare in maniera corretta l’URL e di gestirlo di conseguenza!

ultimoprofeta

Annunci

5 risposte a “Aruba e CodeIgniter – Come risolvere l’errore “No input file specified”

  1. vincenzo 5 settembre 2012 alle 13:35

    grazie 1000

  2. vincenzo 16 dicembre 2012 alle 17:06

    a me non funziona :S

  3. Lorenzo 17 aprile 2013 alle 18:25

    grazie mille per la dritta

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: