nette na wedos u subdomeny
- pernip01
- Člen | 21
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.
- když zadám dom3r.example.com – tak samozřejmě nic, protože tam není žádný skript,
- 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)
- nanuqcz
- Člen | 822
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
.
- 22
- Člen | 1478
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
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
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
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)
- xlilien
- Člen | 27
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!
- Phalanx
- Člen | 310
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
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 foundTohle 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.
- klinki
- Člen | 4
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
Vedle složky www a app, si dej .htaccess s tímto:
RewriteEngine On
RewriteRule ^$ www/ [L]
RewriteRule (.*) www/$1 [L]
- MartinitCZ
- Člen | 580
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)
- MartinitCZ
- Člen | 580
@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
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)