Pregunta

Cuando tengo acceso a mi sitio en MAMP como tal, funciona muy bien

  

localhost / site / about-us /

Cuando subo a mi servidor remoto y acceder a ella como este

  

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

todas las solicitudes se remontan al 'default' establecido en bootstrap.php.

Aquí está mi configuración de ruta.

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

El problema es que cada vez que se ha subido a mi servidor, al igual que cualquier solicitud / about-us / siempre por defecto a casa como se especifica la hora de establecer la ruta. Si cambio que por defecto a 'sobre-nosotros', cada página va a 'sobre nosotros'.

¿Alguien sabe qué puede estar causando esto? Gracias

Actualizar

Aquí es un truco que funciona , pero es seguro feo como el infierno. Aún así yo preferiría saber por qué no funciona según lo esperado.

// 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',
    ));
¿Fue útil?

Solución

Su código es básicamente una captura toda la ruta (que está siendo igualada para todas las solicitudes). Debe restringir como tal.

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

El tercero parámetro es una expresión regular que define lo que la ruta debe coincidir.

Esa ruta encaminará todo emparejado en la expresión regular para el controlador de la página y su acción index.

A continuación, puede utilizar $page = $this->request->param('page'); en su acción.

Otros consejos

¿no estás confundiendo la página $ $ para la acción?

Si intento esto, funciona muy bien. Aquí está mi método de acción controladores:

public function action_index($page = NULL)

{
    var_dump($page);
}

Si hojeo a

localhost/site/blup

Veo ver un bonito

string(4) "blup"

siendo echo'd. Tengo la configuración de ruta por defecto idéntica a la suya.

Parece que la detección automática de la dirección URL de Kohana no está funcionando para la configuración del servidor ... ¿Qué servidor web está fallando en la que?

Se podía alterar la Solicitud :: ejemplo () -> ejecutar () ... línea en el sistema de arranque para empezar:

Solicitud :: instancia ($ _ SERVER [ 'REQUEST_URI']) -> ejecutar () ...

Esto asegurará que utiliza el URI correcto ..

Una vez dicho esto ... como dice el desarrollador de píxeles, la ruta se ve .. raro .. a mí;)

Sin embargo, - ya que trabaja en MAMP - La ruta probable es que no es la cuestión.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top