2012-09-09 7 views
7

Ho creato un'applicazione di prova hello world Slim seguendo le istruzioni here.Ottieni sempre errore 404 in Slim Framework quando ometti index.php nell'URL

Quando faccio questa chiamata ottengo un errore 404:

http://my_server/my_app/hello/John 

In altra parte, quando faccio questa chiamata che funziona grande come ottengo un messaggio "Ciao John":

http://my_server/my_app/index.php/hello/John 

Ma, naturalmente, non voglio index.php nei miei URL ... Cosa può essere sbagliato?

======= ======= EDIT

Ho dimenticato la creazione di file .htaccess come questo (seguente documentazione Slim quadro, e in stessa directory index.php):

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [QSA,L] 

Ora ottengo questo errore:

/physical_path_to_my_files/index.php was not found on this server 
+1

Hai un 'mod_rewrite' o qualche altra configurazione del server-legate alla tecnologia in corso, o è solo .. come suggerisci? –

+1

Ad esempio: http://expressionengine.com/wiki/Remove_index.php_From_URLs/ –

+0

Grazie a @JaredFarrish. Ho modificato il mio post: ho dimenticato di aggiungere il file .htaccess e ora ho un errore diverso, :-( –

risposta

15

Se il file .htaccess si trova nella directory /my_app, modificare le regole per:

012.
RewriteEngine On 

RewriteBase /my_app/ 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [QSA,L] 

Se è nel vostro principale del documento, è necessario aggiungere il percorso:

RewriteRule^/my_app/index.php [QSA,L] 
+0

Fantastico! Ho impostato il valore RewriteBase come/my_app/e ho lavorato come un incantesimo, +1! –

+0

Grazie !! non potevo nemmeno indovinarlo. così stupido errore .. Sorry –

5

può anche cambiare il .htaccess la seguente: (ho avuto un problema simile, e questo risolto per me) :

.htaccess:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 

RewriteRule ^(.*)$ %{ENV:BASE}index.php [QSA,L] 
+0

Ha funzionato un fascino! Stava avendo lo stesso problema dell'OP e questo ha aiutato. Grazie. – Aleski

1

se la soluzione Jon Lin non funziona, significa che il file .htaccess non funziona. è possibile verificare che la mia l'aggiunta di una linea di spazzatura come

RewriteEngine On 
RewriteBase /loop/v1/ 

This is garbage line 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [QSA,L] 

questo produrrà 503 errore se .htaccess lavorando bene, altrimenti non sarà possibile ottenere alcun errore.

se non si è verificato alcun errore, modificare Consenti nessuno su Consenti tutto nella sezione Directory del file conf di apache o Httpd.conf