Domanda

Quando posso accedere al mio sito su MAMP in questo modo, funziona benissimo

  

localhost / sito / chi-siamo /

Quando carico al mio server remoto e l'accesso in questo modo

  

http://www.server.com/site/about-us/

tutte le richieste risalgono al 'default' istituito nel bootstrap.php.

Ecco il mio impostazione del percorso.

Route::set('default', '(<page>)')
    ->defaults(array(
        'page' => 'home',
        'controller' => 'page',
        'action'     => 'index',
    ));

Il problema è che, ogni volta che viene caricato al mio assistente, qualsiasi richiesta come / chi-siamo / è sempre inadempiente a casa , come specificato quando si imposta il percorso. Se cambio che di default a 'chi-siamo', ogni pagina va a 'Chi siamo'.

Qualcuno sa che cosa può causare questo? Grazie

Aggiorna

Ecco un hack che lavori , ma è sicuro brutto come l'inferno. Ancora Preferirei sapere perché non funziona come da previsto.

// Hack because I can not get it to go to anything except 'default' below...

 $uri = $_SERVER['REQUEST_URI'];

 $uri = str_replace(url::base(), '', $uri);

 $page = trim($uri, '/');

 if ( ! $page) $page = 'home';


Route::set('default', '(<page>)')
    ->defaults(array(
        'page' => $page,
        'controller' => 'page',
        'action'     => 'index',
    ));
È stato utile?

Soluzione

Il tuo codice è fondamentalmente un fermo tutto percorso (è in fase abbinato per tutte le richieste). Si dovrebbe limitare in questa maniera.

Route::set('static', '(<page>)', array('page' => 'about-us'))
->defaults(array(
    'controller' => 'page',
    'action'     => 'index',
));

Il terzo parametro è un'espressione regolare che definisce ciò che il percorso deve corrispondere.

Questo percorso sarà percorso tutto abbinato nelle espressioni regolari al controller di pagina e la sua azione indice.

È quindi possibile utilizzare $page = $this->request->param('page'); nella vostra azione.

Altri suggerimenti

Non sei confondere $ pagina per $ azione?

Se provo questo, funziona bene. Ecco il mio metodo di controllori azione:

public function action_index($page = NULL)

{
    var_dump($page);
}

Se passo in rassegna a

localhost/site/blup

Vedo vedere una bella

string(4) "blup"

essere echo'd. Ho l'impostazione percorso di default identica alla vostra.

Sembra che il rilevamento automatico di Kohana dell'URL non funziona per la configurazione del server ... Che server Web è che venendo a mancare su?

Si potrebbe alterare la Request :: istanza () -> execute () ... linea nella bootstrap di iniziare con:

Richiesta :: esempio ($ _ SERVER [ 'REQUEST_URI']) -> execute () ...

che garantirà utilizza il corretto URI ..

Detto questo ... come The Pixel Developer dice, il percorso sembra strano .. .. per me;)

Ma - dal momento che funziona su MAMP - Il percorso non è probabile il problema.

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