Question

Quand j'accéder à mon site sur MAMP comme si, il fonctionne très bien

  

localhost / site / about-us /

Quand je télécharge sur mon serveur distant, et l'accès comme ceci

  

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

toutes les demandes remontent à la « défaillance » mis en place dans bootstrap.php.

Voici ma configuration de l'itinéraire.

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

Le problème est, chaque fois qu'il se téléchargé sur mon serveur, toute demande comme / about-us / est en défaut toujours la maison comme indiqué lors de la configuration de la route. Si je change cette valeur par défaut de « volte-nous », chaque page va « de nous ».

Quelqu'un sait-il ce qui peut être la cause? Merci

UPDATE

Voici un hack que fonctionne , mais il est sûr laid comme l'enfer. Je préfère encore savoir pourquoi il ne fonctionne pas comme prévu par.

// 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',
    ));
Était-ce utile?

La solution

Votre code est essentiellement un fourre-tout la route (il est en cours de correspondance pour toutes les demandes). Vous devez restreindre comme si.

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

Le 3ème paramètre est une expression régulière qui définit ce que la route doit correspondre.

Cette route acheminera tout adapté à l'expression régulière au contrôleur de la page et son action index.

Vous pouvez ensuite utiliser $page = $this->request->param('page'); dans votre action.

Autres conseils

N'êtes-vous pas se méprendre sur la page $ pour l'action $?

Si j'essaie cela, il fonctionne très bien. Voici mes contrôleurs méthode d'action:

public function action_index($page = NULL)

{
    var_dump($page);
}

Si je passe en revue à

localhost/site/blup

Je vois un beau voir

string(4) "blup"

étant echo'd. J'ai la configuration de la route par défaut identique à la vôtre.

On dirait que la détection automatique de Kohana de l'URL ne fonctionne pas pour la configuration de votre serveur ... Ce serveur web est-il échoue sur?

Vous pouvez modifier la demande :: instance () -> execute () ... ligne du bootstrap pour commencer:

Demande :: instance ($ _ SERVER [ 'REQUEST_URI']) -> execute () ...

Cela assurera qu'il utilise l'URI correct ..

Cela dit ... En tant que développeur de Pixel dit, votre itinéraire semble .. bizarre .. pour moi;)

Mais - car il fonctionne sur MAMP - La route est probablement pas la question.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top