Nette na hostingu, kde nelze prenastavit DocumentRoot (Wedos)

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

Ahoj,

na hostingu u Wedosu nelze nastavit DocumentRoot do adresare www/. Nasel jsem spoustu navodu na StackOverflow, nebo i tady na foru, ale nic mi nefunguje.
Jedna se o subdomenu, takze jsem postupoval podle navodu od Wedosu tady: http://kb.wedos.com/…stalace.html (2. Nette jako alias nebo subdoména).

V rootu webu mam .htacces, ktery obsahuje:

RewriteEngine On
RewriteRule (.*) www/$1 [L]

Potom v adresari www/ mam .htaccess s obsahem z nette/sandbox:

# 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>

Web nabehne, ale staticke soubory jsou porad pristupne pouze s url zacinajici www (napr. http://example.com/…css/main.css).

Ma s tim prosim nekdo zkusenost?

Diky

japlavaren
Člen | 404
+
0
-

ja pouzivam toto a funguje:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?domena\.cz$
RewriteRule ^$ www/ [L]
RewriteCond %{HTTP_HOST} ^(www\.)?domena\.cz$
RewriteRule (.*) www/$1 [L]
fabian
Člen | 20
+
0
-

Me to nefunguje pro staticke soubory (css, js), ktere jsou v adresari www/css a www/js. Zkusil jsem nahrat cisty nette/sandbox. Ten sice vypada dobre, ale kvuli tomu, ze ma inline styly. Styly z adresare www/css/screen.css mi vrati chybu 500.

japlavaren
Člen | 404
+
0
-

skus odkomentovat tento riadok v www/.htaccess:
RewriteBase /

fabian
Člen | 20
+
0
-

To mi take nepomohlo. Nekde jsem zase cetl, ze by tam melo byt RewriteBase /www, ale ani s tim to nejde:(

David Grudl
Nette Core | 8228
+
+5
-

Jakékoliv řešení, kde nelze nastavit document root, je principiálně z bezpečnostního hlediska špatné. Je to něco jako pozvat si domů zloděje a pak dohlížet, aby něco neukradl.

Skutečně na Wedosu získáte přístup jen a pouze ke složce document root? Pak bych se jich asi zeptal, kam mám nahrát ostatní soubory.

Tharos
Člen | 1030
+
0
-

Já mám na WEDOSu v rootu (/www/domains/example.org/) .htaccess s následujícím obsahem:

RewriteEngine on
RewriteRule ^(.*)$ /www/$1 [L,NE]

Document root mám v subadresáři www a vše funguje jak má. Mám takový dojem, že jsem v .htaccess ve www musel ještě odstranit (zakomentovat) Options -Indexes.

Aurielle
Člen | 1281
+
-2
-

@DavidGrudl jaké ostatní soubory? Vy snad máte na webu něco, co neslouží k jeho chodu? Nebo potřebujete před návštěvníky něco schovávat? </irony>

fabian
Člen | 20
+
0
-

Tak se mi to proste nepovedlo. Wedos pouziva k tvorbe subdomen .htaccess v rootu hostingu. Dalsim .htaccessem v adresari subdomeny se pak ma menit DocumentRoot a dalsi .htaccess ma Nette ve /www adresari. To uz je trochu silny kafe. Zvlast, kdyz do toho prvniho .htaccess v rootu hostingu nevidim.

Diky vsem za rady. Jinak samozrejme souhlasim s @DavidGrudl, ze nepouzivat DocumentRoot neni uplne dobry napad, taky se snazim klienta presvedcit..

Jan Tvrdík
Nette guru | 2595
+
+3
-

@fabian Na Nette fóru je 100+ vláken týkajících se Wedosu. Všechny problémy, které tam existují, tu už byly vyřešeny. Několikrát. Stačí hledat.