nette + wedos – routování

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
walkercz
Člen | 9
+
0
-

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
+
0
-

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
+
0
-

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
+
0
-

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
+
0
-

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.

echo
Člen | 134
+
0
-

A co nechat .htaccess wedosu tak, jak je. A do adresáře subdomény hodit index.php, který includuje původní Nette index.php.

walkercz
Člen | 9
+
0
-

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
+
0
-

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?