Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF] Subdomeny jako moduły?
Forum PHP.pl > Forum > PHP > Frameworki
Diabl0
Witam

Kombinuję na różne sposoby z Zend Framework i jego routerem i nie nie mam pojęcia jak zrobić subdomeny jako wskaźniki modułu

Chcę aby nazwa subdomeny wskazywała nazwę modułu, np:

http://blog.domena.pl/ - blog/indexController/indexAction
http://blog.domena.pl/costam - blog/costamController/indexAction
http://blog.domena.pl/costam/wiecej - blog/costamController/wiecejAction

http://galeria.domena.pl/ - galeria/indexController/indexAction
http://galeria.domena.pl/przeglad - galeria/przegladController/indexAction
http://galeria.domena.pl/costam/ostatnie - galeria/przegladController/ostatnieAction

Ma ktoś jakiś pomysł jak do tego podejść?
Turgon
Wildcard plus mod_rewrite na urle w stylu domena.pl/$modul/$reszta tongue.gif
LBO
Albo własny router
Diabl0
Cytat(Turgon @ 20.09.2007, 16:10:13 ) *
Wildcard plus mod_rewrite na urle w stylu domena.pl/$modul/$reszta tongue.gif


Da się wyłudzić jakiś przykład? Bo jedyne do czego dzisiaj dochodzę to server error 500, 302 albo zapętlenie apacza :/
Turgon
Cóż, sam za często się nie bawię mod_rewrite, więc konkretnym w 100% przykładem nie rzucę, ale gdzie na wiki.rootnode.pl widziałem przykład...
eai
Kod
RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{HTTP_HOST}  !(^www.domain.pl)
RewriteCond %{HTTP_HOST}  ^(www\.)?(.*).domain.pl [NC]
RewriteRule ^(.*)$ index.php/%2/$1 [L]


RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]


index.php
  1. <?php
  2.  
  3. echo $_SERVER['PATH_INFO'];
  4. ?>


Sprawdzane. Działa

Przykład: http://subdomena.euo.pl/kontroller/akcja
Przykład: http://www.subdomena.euo.pl/kontroller/akcja
Przykład: http://sub.euo.pl/kontrollerb/akcjab

itd.
Diabl0
Trochę się pomęczyłem ale udało się dodać obsługę "czystej" subdomeny

Kod
RewriteEngine On

RewriteCond %{HTTP_HOST}  !(^www.domena.pl)
RewriteCond %{HTTP_HOST}  ^(www\.)?(.*).domena.pl [NC]
RewriteRule ^$ index.php/%2 [L]

RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{HTTP_HOST}  !(^www.domena.pl)
RewriteCond %{HTTP_HOST}  ^(www\.)?(.*).domena.pl [NC]
RewriteRule ^(.*)$ index.php/%2/$1 [L]


RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]


Dodatkowo dla Zend Framework na początku bootstrap należy dodać:

  1. <?php
  2. $_SERVER['REDIRECT_URL'] = $_SERVER['PATH_INFO'];
  3. $_SERVER['REQUEST_URI'] = $_SERVER['PATH_INFO'];
  4. ?>


Może mało eleganckie ale działa (przynajmniej na razie winksmiley.jpg). Jak ktoś znajdzie bardziej poprawne rozwiązanie bez nadpisywania $_SERVER to chętnie się zapoznam.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.