Domanda

Ho visto menzionato in molti blog in giro per la rete, ma credo che dovrebbe essere discusso qui.Cosa possiamo fare quando abbiamo un framework MVC (mi interessa ZEND) in PHP, ma il nostro ospite non fornisce mod_rewrite?Ci sono "scorciatoie"?Possiamo trasferire il controllo in qualsiasi modo (in modo che una mappatura può verificarsi tra le pagine)?Tutte le idee?Grazie :-)

È stato utile?

Soluzione

Zend framework dovrebbe funzionare senza mod_rewrite.Se si può vivere con URL:s più simile a "/path/to/app/indice.php/controller/action".Se hai avuto il mod_rewrite si potrebbe fare via con il "index.php" bit, ma dovrebbe funzionare con troppo.

È tutta una questione di impostazione di percorsi di accettare la index.php parte.

Altri suggerimenti

OK il mio verdetto :-) :Ho usato con successo zend senza mod_rewrite e come avete detto tutti sito/indice.php/controller/action.Sapevo che prima di postare questo.Ho anche trovato in giro per la rete una tecnica che "spinge" 404 pagine index.php pertanto, ciò che non è una risorsa (es.CSS, immagini, ecc) ci arriva, con una sola eccezione:POSTA i valori.Così ho deciso che la prossima volta che un'applicazione deve essere fatta in un server specifico, per chiedere educatamente per il mod_rewrite.Se l'amministratore non può fornire, parlare con il mio capo, o se è per me, cambiare provider.In genere è una vergogna che PHP mercato è molto frammentato (php4, php5, php6, mod_rewrite, mod_auth, mod_whatever), ma questa è un'altra storia...

mod_rewrite è quasi indispensabile nell'attuale ambiente di hosting..ma purtroppo non tutti hanno recepito il messaggio.

Un sacco di grandi programmi php (sto pensando di magento, ma la maggior parte in grado di affrontare) sono una bella url ricadere modalità per quando mod_rewrite non è disponibile.

Url tipo www.site.com/index.php?load-this-page

Essi devono essere in esecuzione un po ' di magia per afferrare il nome della variabile da $_GET variabile e di utilizzarlo come selettore per quale modulo/funzione da eseguire.

In una nota correlata, ho visto un sacco di incasinato Url nel nuovo facebook sito in cui è con il #.Così i collegamenti aspetto www.new.facebook.com/home.php#/inbox/ Chiaramente stiamo non vuole vedere, ma suggerisce che probabilmente l'analisi di $_SERVER['REQUEST_URI'] variabile.

Se si può trovare un non-mod_rewrite modo di reindirizzare tutte le richieste index.php (o dove lo script di init è), è possibile, come detto sopra, 'REQUEST_URI' per afferrare la parte dell'indirizzo dopo il dominio e quindi di analizzare e fare la richiesta, di fare ciò che si desidera.Questo è come Wordpress non è concesso, con mod_rewrite).Come è possibile reindirizzare le richieste per la vostra pagina di indice, pur mantenendo la stessa URI, si può fare ciò che è necessario per elaborare la richiesta.

Drupal riscrivere le regole di tradurre

http://example.com/path/goes/here

in

http://example.com/index.php?q=path/goes/here

...e ha logica per decidere quale tipo di Url che si desidera generare.Se si può vivere con Url brutti, ciò permette di mantenere tutta la logica di un unico front controller al posto w/o affidamento su di riscrittura degli URL.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top