nette + wedos – routování
- walkercz
- Člen | 9
Použivám nette na alias doméně example.com (čili umístění je v www/domains/example.com) u wedosu vše v pořádku, potřebuji však aby při zavolání m.example.com naskočil modul mobile který je jinak přístupný přes example.com/mobile
routu mám v bootstrapu
$router[] = new NRoute('//m.example.com/<presenter>/<action>[/<id>]', 'Mobile:Homepage:default');
, mám podezření na hlavní .htaccess v tom jsou bohužel moje schopnosti krátké :-)
protože m.example.com v www/domains/ neexistuje tak se pravděpodobně dle některého z těchto pravidel přesměruje do kořenového adresáře www/
RewriteEngine On
# cele domeny (aliasy)
RewriteCond %{REQUEST_URI} !^domains/
RewriteCond %{REQUEST_URI} !^/domains/
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)$
RewriteCond %{DOCUMENT_ROOT}/domains/%2 -d
RewriteRule (.*) domains/%2/$1 [DPI]
# subdomeny (s nebo bez www na zacatku)
RewriteCond %{REQUEST_URI} !^subdom/
RewriteCond %{REQUEST_URI} !^/subdom/
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)\.([^\.]*)\.([^\.]*)$
RewriteCond %{DOCUMENT_ROOT}/subdom/%2 -d
RewriteRule (.*) subdom/%2/$1 [DPI]
# aliasy - spravne presmerovani pri chybejicim /
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^domains/[^/]+/(.+[^/])$ /$1/ [R]
# subdomeny - spravne presmerovani pri chybejicim /
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^subdom/[^/]+/(.+[^/])$ /$1/ [R]
jak to správně řešit, aby výsledek byl při zadání m.example.com app fungovala když její index je v example.com :-)
- Filip Procházka
- Moderator | 4668
Jediné co potřebuješ, je tohle
RewriteEngine On
# RewriteBase /
# prevents files starting with dot to be viewed by browser
RewriteRule /\.|^\. - [F]
# front controller
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(pdf|js|ico|css|rar|zip|tar\.gz)$ index.php [L]
- walkercz
- Člen | 9
mno todle nefunguje (přesměruje to example.com do /www/ ) možná bych měl ještě říct že hlavní htaccess je v adresáři /www/.htaccess
ještě edit adresářová struktura:
/www/domains/example.com/index.php
/www/.htaccess
celkem mi vyhovuje že při vytvoření adresáře v domains to vytvoří novou subdoménu (mám tam nějaké jiné projekty) krom toho případu kdy chci volat m.example.com
Editoval walkercz (28. 3. 2013 16:11)
- walkercz
- Člen | 9
Potřeboval bych asi něco ve smyslu (pokud sem to pochopil správně)
#muj pokus o přesměrování v připadě m.example.com
RewriteCond ^m.example.com
RewriteRule ^domains/example.com/
ale todle nefunguje :-) a navíc nevím jestli to po tom přesměrování nepřepíše adresu z m.example.com na example.com což nechci :-)
rád bych si s tím pohrál sám, ale bohužel mají stránky docela návštěvnost a tak není vzhledem k uživatelům hezké aby to porád padalo :-)
Editoval walkercz (29. 3. 2013 14:57)
- Filip Procházka
- Moderator | 4668
Nette funguje tak, že máš jeden (!)
www/index.php
na který jdou všechny (!)
requesty.
Tedy nějaké složkování je zbytečnost pro trapné frameworky, které to neumí, nebo když tam chceš mít na subdoméně úplně jinou aplikaci.
- walkercz
- Člen | 9
ano, mám tam jiné projekty neběžící na nette proto mi vyhovuje ta wedos struktura
includování hází chybu → opět prozkoumal bych blíže jakou ale zase bych si pohrával s trpělivostí uživatelů, proto bych možná raději ten redirect. Kdybych to už někde někdy dělal nebo se mi to povedlo vygooglit tak neotravuju, ale bohužel google mi radí, ale bylo by třeba testovat, takže pěkně prosím o konkrétní prozrazení toho kousku kódu do .htaccess
- Bejn
- Člen | 17
walkercz napsal(a):
ano, mám tam jiné projekty neběžící na nette proto mi vyhovuje ta wedos struktura
includování hází chybu → opět prozkoumal bych blíže jakou ale zase bych si pohrával s trpělivostí uživatelů, proto bych možná raději ten redirect. Kdybych to už někde někdy dělal nebo se mi to povedlo vygooglit tak neotravuju, ale bohužel google mi radí, ale bylo by třeba testovat, takže pěkně prosím o konkrétní prozrazení toho kousku kódu do .htaccess
Povedlo se ti to nějak?