CakePHP'de iç ve dış yolları olması mümkün mü?

oy
1

Bir Facebook uygulaması, diyelim ki, benim sunucuda barındırılan http://server.com/projects/fbapp/ ama sadece hiç görülüyor içinde örneğin,, en Facebook'ta http://apps.facebook.com/fbapp/ .

Kullanılması CakePHP'nin bu bir sorun oluşturur - hatlar / proje / fbapp veya sadece fbapp öneki olmalıdır?

Bu rotalar gelen istekleri yönlendirilmesi için değil, aynı zamanda bağlantıları oluşturmak için değil, sadece kullanılan (ve eylemler vb oluştururlar) çünkü bir problem.

Bir kludge gibi, sizi rota başına iki yönlendirme talimatları vardır:

Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));
Router::connect('projects/fbapp/pages/*', array('controller' => 'pages', 'action' => 'display'));

İlk çünkü bootstrap.php dahil ettik bir satırın bir önek gerektirmeyen ile:

Configure::write('App.base', '/fbapp');

Hangi ters yönlendirme işlemleri sırasında başladı.

Sorum Bunu yapmak için daha şık bir yolu var olup olmadığıdır? Bu çok çirkin görünüyor ve bunu çok Cakey olmadığına eminim.

Oluştur 13/05/2009 saat 00:16
kaynak kullanıcı
Diğer dillerde...                            


3 cevaplar

oy
1

İsteğe göre yorumumu gönderme Çapraz:

Facebook'a gelen trafik bir (apache) yeniden yazma en zarif çözüm olmaz mı? Sizin iç makinesi sadece bir yol ile uğraşmak zorunda kalacak ve daha sonraki bir tarihte başka bir hizmet / platform app entegre etmek istiyorsa, yalnızca ziyade uygulamanın kendisinden karıştırmasını daha başka yeniden yazma kuralı eklemek gerekir.

Cevap 18/05/2009 saat 03:44
kaynak kullanıcı

oy
1

Ben dayalı gitmek gerekecek Apache sor ve birkaç eski projelerde yerine koymak ettik bazı kurallar. Ben hile yapacağını webroot dizini içinde .htaccess dosyasında koyarak düşünüyorum (ama bu bir tahmin).

Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} ^/projects/fbapp/pages.*
RewriteRule ^/projects/fbapp/pages/(*)$ /pages/$1 [L]

(Ben doğru yaptıysam) Yukarıdaki eşleşen herhangi bir isteği yazarsın bundan http://server.com/projects/fbapp/pages/ için * http://server.com/pages/ * yani http://server.com/ projeler / fbapp / sayfalar / foo => http://server.com/pages/foo .

Edit Bulunan yayınlanan bu Apaçi bölümünde.

Cevap 18/05/2009 saat 21:38
kaynak kullanıcı

oy
1

Sen hiç bir şey yapmanıza gerek yok! Kek rotaları çoğaltmak gerek kalmaz, sizin için temel URL özen, ne de temel URL ilgilenir. Ne yapmanız gereken şekilde yönlendirmek göreli URL kullanmak yerine etmektir projects/fbapp/, ya da her ne Öntakı işlemek istiyorum:

Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));

Ben altında dağıtmak benim app tüm istekleri işlemek işte böyle http://www.example.comlokal olarak ben altında varken, http://localhost/workspace/example.com/trunk/deploy. Her iki ortamlarda bir cazibe gibi çalışır.

Cevap 22/05/2009 saat 17:45
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more