Kohana 3 yolları ile can sıkıcı sorun

3 Cevap php

Ben şöyle MAMP sitemde eriştiğinizde, harika çalışıyor

localhost / site / about-bize /

Ben benim uzak sunucuya yükleyin, ve bu gibi eriştiğinizde

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

tüm istekleri geri bootstrap.php kurmak 'varsayılan' gidin.

İşte benim rota ayardır.

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

Sorun benim sunucusuna yüklenen alır zaman, olan, rota ayarlarken belirtilen yaklaşık-us / her zaman home olarak varsaymak / gibi herhangi bir istek. Ben hakkında '-Bizim' olduğunu varsayılan değiştirirseniz, her sayfa 'hakkımızda' gider.

Herkes bu neden olabilir ne biliyor mu? Teşekkürler

UPDATE

İşte bir hack olduğunu works, ama cehennem gibi emin çirkin. Hala bunu başına beklendiği gibi çalışmıyor neden bilmek tercih ediyorum.

// 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',
    ));

3 Cevap

Sizin kod temelde bir catch (tüm istekleri için eşleşmiş ediliyor) Tüm yoldur. Öyle gibi kısıtlamak gerekir.

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

3. parametre rota eşleşmesi gerektiğini tanımlayan bir ifadedir.

Sayfa denetleyicisi ve dizin eylem normal ifadede eşleşen yol güzergahın her şey.

Daha sonra eylem $page = $this->request->param('page'); kullanabilirsiniz.

Eğer $ eylem için $ sayfa karıştırıyorsun değil mi?

Ben bu deneyin, gayet güzel çalışıyor. İşte benim kontrolörleri eylem yöntemi bulunuyor:

public function action_index($page = NULL)

{
    var_dump($page);
}

Ben göz atarsanız

localhost/site/blup

Ben güzel bir bkz

string(4) "blup"

echo'd edilir. Ben sizin için aynıdır varsayılan yol kurulum var.

Bu URL Kohana oto-algılama sunucu kurulumu için çalışmıyor ... Ne web sunucusu üzerinde başarısız gibi geliyor?

Sen iste :: örneğini değiştirmek () olabilir -> (yürütme) ... ile başlamak için bootstrap satır:

Talebi :: örneği ($ _SERVER ['REQUEST_URI']) -> (yürütme) ...

İşte bu doğru URI kullanan sağlayacaktır ..

Pixel Geliştirici rota bana .. .. tuhaf görünüyor, diyor ki ... söyleniyor ;)

Bu MAMP çalışır çünkü - - Ama yol sorunu olası değildir.