nette na wedos u subdomeny

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

Zdravím,
řeším to, co již mnozí zde, ale nikde jsem nenalezl rozřešení.

Před tím však jednu obecnou otázku. Jestliže mám postavenu aplikaci na standardní struktuře „like sandbox“, tak jak se má napojit vstupní skript (index.php, default.php) dané domény na skript index.php aplikace, který je o úroveň níž v adresáři www.

  1. když zadám dom3r.example.com – tak samozřejmě nic, protože tam není žádný skript,
  2. když zadám dom3r.example.com/www – tak laděnka říká

Nette\Application\BadRequestException #404
Cannot load presenter ‚Www‘, class ‚WwwPresenter‘ was not found in

3. když zadám dom3r.example.com/www/index.php – tak laděnka říká:

Nette\Application\BadRequestException #404
No route for HTTP request.

=====================================================
Druhá věc, kterou bych potřeboval objasnit, je to, jak má vypadat .htaccess u aplikace, která leží na doméně třetího řádu a u aplikace , která leží na doméně na druhém řádu.

já mám .htaccess na dom. druhého řádu takto:

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]

Podotýkám, že pro přenost používám FileZilu, takze s názvy to je ok.

Díky, za odpověď

PS: skoro už by mohla vzniknout další kapitola v rámci seriálu „Udělejte si první aplikaci“ s názvem „Distribujeme aplikaci na produkční server“. Když se mi to podaří rozběhat, tak já to snad fakt shrnu, protože takového času co jsem s tím už strávil, nepřeji nikomu.

Jinak Wedos je dobrý.

Editoval pernip01 (22. 3. 2012 17:29)

Keksa
Člen | 23
+
0
-

Já to vyřešil tak, že sem prostě vyhodil index.php z www adresáře do rootu a funguje to.

nanuqcz
Člen | 822
+
0
-

Před tím však jednu obecnou otázku. Jestliže mám postavenu aplikaci na standardní struktuře „like sandbox“, tak jak se má napojit vstupní skript (index.php, default.php) dané domény na skript index.php aplikace, který je o úroveň níž v adresáři www.

Já to řeším jednoduše takto :-)

Nette\Application\BadRequestException #404
Cannot load presenter ‚Www‘, class ‚WwwPresenter‘ was not found

Tohle se mi stávalo se starým Nette, s 2.0.1 už ne. Hostuju taky na Wedosu a používám výše odkazovaný .htaccess.

pernip01
Člen | 21
+
0
-

Děkuji, za uvedené odpovědi.
Vyzkoušel jsem radu od keksa a po te, co jsem ve vnitř index.php upravil cesty o uroven vyse tak to funguje.

22
Člen | 1478
+
0
-

Ja teda nevím, ale stačí dát do rootu subdomeny akorát .htaccess, který tě přesměruje do složky www. Nemusíš ani šahat na ten jejich původní, funguje to stejně imho, jako pro hlavní doménu, klidně to někde pohledám, ale funguje mi to tam normálně, pokud dodržíš název adresáře podle dokumentace.

wedos
Člen | 1
+
0
-

Dobrý den,

snad pomůže tato malá rada:
http://kb.wedos.com/…ostingu.html

Je to sice primárně trochu k něčemu jinému, ale mohlo by to poradit jak postupovat.

pernip01
Člen | 21
+
0
-

Ahoj, tak jsem opět tu.

Stav rozběhnutí projektu na doméně 3tího řádu je tento:

pokud použiji radu od keksa, tak opravdu to běhá, ale u index.php musím mít .htaccess, kterej jsem si zkopiroval z domény druheho radu.

Co však neběhá jsou odkazy a je potřeba předělávat vše co používá basepath v templatech .

Když však dám index.php do www, tak při volání adresy: dom3r.example.com/www/index.php dostanu
Nette\Application\BadRequestException #404
No route for HTTP request

Už je to fakt síla.

Tím vzniká základní otazka, a to: Jak definovat v .htaccessu (který má být kde? (rootu subdomeny nebo w adresari www)),aby přesměroval všechny požadavky do adresáře www.

Pokud by mi 22 poskytl daný příklad, bylo by to super.

děkuji

Editoval pernip01 (24. 3. 2012 16:46)

nanuqcz
Člen | 822
+
0
-

pernip01: Na tento odkaz ses díval?

Pokud ano a přesto jsi to nepochopil, tak jsem ti připravil Wedos sandbox ;-) Je úplně stejný, jako normální Nette sandbox, upravené jsou jen soubory /.htaccess a /www/.htaccess. Odskoušeno a funguje.

Editoval nanuqcz (30. 3. 2012 17:36)

pernip01
Člen | 21
+
0
-

Ahoj,
fakt jsem se díval, zkoušel a nepochopil. Omlouvám se.
Díky

22
Člen | 1478
+
0
-

no hele, podle mě by mělo stačit do adresáře www/subdom/something.domain.cz/:

Options -Indexes

RewriteEngine On

RewriteCond %{HTTP_HOST} ^something.domain.cz$
RewriteCond %{REQUEST_URI} !^/something.domain.cz/www/
RewriteRule (.*) /www/$1 [L]
pernip01
Člen | 21
+
0
-

Vypadá to, že to funguje, haleluja. Ale budu radši v tom radování opatrnej.
Ještě se ozvu jestli je vše ok.

DĚKUJI.

potty
Člen | 13
+
0
-

nanuqcz: Prosím tě, hodil bys sem ještě jednou ten wedos sandbox? Už se s tím trápím dlouho a nemůžu na to přijít.

Edit: Tak stačilo zakomentovat Options a úvodní stránka jede. Teď už jen dostávám error 404, když kliknu na nějaký odkaz.

Editoval potty (30. 3. 2012 15:33)

nanuqcz
Člen | 822
+
0
-

potty: Sry, napsal jsem ten odkaz bez http:// na začátku. Link opraven.

Editoval nanuqcz (30. 3. 2012 17:37)

xlilien
Člen | 27
+
0
-

nanuqcz napsal(a):

pernip01: Na tento odkaz ses díval?

Pokud ano a přesto jsi to nepochopil, tak jsem ti připravil Wedos sandbox ;-) Je úplně stejný, jako normální Nette sandbox, upravené jsou jen soubory /.htaccess a /www/.htaccess. Odskoušeno a funguje.

Dávám +1 a moc děkuju za sandbox připravenej pro wedos. Pomohl mi a fungoval. Díky!

Maekoboss
Člen | 36
+
0
-

Mohl bych někoho porposit o ten sandbox pro wedos? Ted s tim docela bojuji! Moc děkuju

Phalanx
Člen | 310
+
0
-

htaccess globální

<IfModule mod_rewrite.c>
	RewriteEngine On
	RewriteRule ^$ /www/ [L]
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d
	RewriteCond %{REQUEST_URI} !^/www/
	RewriteRule ^(.*)$ /www/$1
</IfModule>

htaccess ve www složce (důležité je odkomentovat řádek RewriteBase /)

# Apache configuration file (see httpd.apache.org/docs/2.2/mod/quickreference.html)

# disable directory listing
Options -Indexes

# enable cool URL
<IfModule mod_rewrite.c>
	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|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php [L]
</IfModule>

# enable gzip compression
<IfModule mod_deflate.c>
	AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript text/javascript application/javascript application/json
</IfModule>

# allow combined JavaScript & CSS. Inside of script.combined.js you could use <!--#include file="script.js" -->
<IfModule mod_include.c>
	<FilesMatch "\.combined\.(js|css)$">
		Options +Includes
		SetOutputFilter INCLUDES
	</FilesMatch>
</IfModule>
kastanekdavid
Člen | 39
+
0
-

nanuqcz napsal(a):

Před tím však jednu obecnou otázku. Jestliže mám postavenu aplikaci na standardní struktuře „like sandbox“, tak jak se má napojit vstupní skript (index.php, default.php) dané domény na skript index.php aplikace, který je o úroveň níž v adresáři www.

Já to řeším jednoduše takto :-)

Nette\Application\BadRequestException #404
Cannot load presenter ‚Www‘, class ‚WwwPresenter‘ was not found

Tohle se mi stávalo se starým Nette, s 2.0.1 už ne. Hostuju taky na Wedosu a používám výše odkazovaný .htaccess.

Excelentní! Můžu potvrdit, že přidáním tvého .htaccess souboru do podsložky konkrétní domény ve složce domains na wedos hostingu jsem docílil korektního routování celé aplikace. :)

Ladil jsem to tady tak 3 hodiny, a přitom bylo řešení takhle easy. Ještě jednou dík.

Patrik Votoček
Člen | 2221
+
0
-

Nechtěli by jste to hodit na PlaNette

klinki
Člen | 4
+
0
-

Zdravím,

mám problém s rozběháním Nette na subdoméně Wedosu. Zkoušel jsem vaše rady (a wedos nette sandbox) a bohužel mi server neustále hází error 500.

Hlavní stránka na subdoméně se mi načte, ale jakmile dám do URL jakoukoliv jinou cestu, tak ne.

Pravděpodobně se tam jedná o problém s nasměrováním souborů do správného adresáře, protože jsem vyzkoumal, že když soubory, které se snažím načíst, umístím do adresáře subdomény adresáře, tak to funguje.

Příklad:

existuje soubor /subdom/test/soubor.php a /subdom/test/www/soubor.php

zadám url: http://test.domena.cz/soubor.php

  • v prohlížeči se správně zobrazí obsah souboru /subdom/test/www/soubor.php jak bych očekával. ALE! Když smažu /subdom/test/soubor.php tak dostanu chybu 500 :(

Takto se to chová naprosto se vším. Bohužel mi kvůli tomu nefungují ani hezké url, takže http://test.domena.cz/sign/in také končí chybou 500.

Vůbec nevím co s tím, nemám žádné logy, nic. Prostě jen chybu 500.

.htaccess ve složce /subdom/test/ a /subdom/test/www/ jsem použil z Nette Wedos sandboxu: https://github.com/…edos-sandbox

a .htaccess v rootu hlavní domény je defaultní wedosový: http://pastebin.com/uueZMs7T

MartinitCZ
Člen | 580
+
+2
-

Vedle složky www a app, si dej .htaccess s tímto:

RewriteEngine On

RewriteRule ^$ www/ [L]
RewriteRule (.*) www/$1 [L]
castamir
Člen | 629
+
0
-

Já používám tohle:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^$ /www/ [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !^/www/
    RewriteRule ^(.*)$ /www/$1
</IfModule>

Editoval castamir (31. 8. 2014 17:00)

MartinitCZ
Člen | 580
+
0
-

castamir: Při tvém zápisu by se mohlo stát, že si někdo zobrazí config.neon ;) (když pominu .htaccess v app, který si klidně může někdo smazat)

castamir
Člen | 629
+
0
-

@MartinitCZ .htaccess si hlídám, ale každopádně dík za info

MartinitCZ
Člen | 580
+
0
-

@castamir :) jj hlídej. Já raději poživám ten můj kod a případné soubory jsou dostupné poue v www. Taková dvojtá ochrana proti blbosti. ;)

klinki
Člen | 4
+
0
-

Díky za rady, bohužel to stále nefunguje :( Pořád dostávám Error 500 :(

Ještě pro upřesnění adresářová struktura:

www (root hlavní domény)
|-- .htaccess  (Wedosový)
|-- subdom
|   |-- test
|   |   |-- .htaccess (ten od Martinita)
|   |   |-- www
|   |   |   |-- .htaccess (ten z Nette Wedos sandboxu)
|   |   |   |-- index.php
|   |   |   |-- css
|   |   |   |   |-- screen.css
|   |   |-- app
|   |   |-- log
|   |   |-- temp

Editoval klinki (1. 9. 2014 23:59)