Nette na ispconfig hledá neexistující presenter
- Rndoom04
- Člen | 75
Ahoj,
chtěl bych se zeptat. Mám nette stránky na linux serveru, kde je nainstalovaný ispconfig. Každý web má spuštěné statistiky přes AWStats a defaultně se zapínají na domain.tld/stats. Problém ale nastává, že nette hledá presenter a přitom je to složka, ve které jsou soubory.
Struktura vypadá takto:
- /app
- /bin
- /log
- …
- /stats
- /temp
- /www
Poradíte mi, jak přidat výjimku? Napadlo mě do .htaccess, ale tam si nejsem jistý, jak to udělat, protože mi buď jde web a nebo statistiky.
.htaccess nyní:
<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>
Děkuji za každou radu. :)
- Gappa
- Nette Blogger | 209
Co zkusit přidat výjimku přímo pro ten adresář?
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^$ www/ [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^www/
RewriteCond %{REQUEST_URI} !^stats/
RewriteRule ^(.*)$ www/$1
</IfModule>
Editoval Gappa (15. 3. 2019 6:42)
- Kamil Valenta
- Člen | 822
Kde máš Document_root? Nehledá se adresář stats ve /www/, ačkoliv je
nyní ve / ?
Neměl bys na disku mít /www/stats ?
- Rndoom04
- Člen | 75
Děkuji za odpovědi. Bohužel ani jedna z možností mi nefunguje. Stále ta samá chybová hláška.
Rozepíšu více svou adresářovou strukturu:
/...
/ssl
/subdomains
/log
/tmp
/web
├ /app
├ /bin
├ /error
├ /log
├ /nbprojects
├ /stats
├ /temp
├ /tests
├ /vendor
├ /www
└.htaccess
Když se někdo pokusí přijít na stránky, je automaticky odkázán do adresáře /web, kde soubor .htaccess vše redirectuje do složky /www a potřeboval bych, aby udělal výjimku pro domain.tld/stats, který by měl odkazovat do adresáře „stats“.
Editoval Rndoom04 (15. 3. 2019 12:34)
- Kamil Valenta
- Člen | 822
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^$ www/ [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/www
RewriteCond %{REQUEST_URI} !^/stats
RewriteRule ^(.*)$ www/$1
</IfModule>
Ta lomítka v RewriteCondech by měla být před názvem adresáře, ne za.
- Rndoom04
- Člen | 75
kamil_v napsal(a):
<IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^$ www/ [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !^/www RewriteCond %{REQUEST_URI} !^/stats RewriteRule ^(.*)$ www/$1 </IfModule>
Ta lomítka v RewriteCondech by měla být před názvem adresáře, ne za.
Děkuji za odpověď, ale ani tak to není. Stále ta stejná chyba (https://imgur.com/a/fz1pfJ9). :/
- David Grudl
- Nette Core | 8239
problém ale nastává, že nette hledá presenter a přitom je to složka, ve které jsou soubory.
Ale je o úroveň výš. Server hledá ve složce www. Takže tam musí být nějaký mechanismus, který ti ji zobrazuje. A to ti řeknou na hostingu, zkus se zeptat tam.
- Rndoom04
- Člen | 75
David Grudl napsal(a):
problém ale nastává, že nette hledá presenter a přitom je to složka, ve které jsou soubory.
Ale je o úroveň výš. Server hledá ve složce www. Takže tam musí být nějaký mechanismus, který ti ji zobrazuje. A to ti řeknou na hostingu, zkus se zeptat tam.
Ne, server hledá ve složce /web, kde je umístěný .htaccess, který odkazuje na /web/www – jsem schopný ho editovat. Pokud ten .htaccess smažu, mohu se dostat do /web/stats, ale právě se mi nedaří správně napsat obsah toho .htaccess umístěný ve /web, aby mi fungovalo oboje.
- Petr Parolek
- Člen | 455
jak jsem několikrát tady na foru psal, používám:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*) https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
RewriteRule ^$ /www/ [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/www/
RewriteRule ^(.*)$ /www/$1
</IfModule>
- Rndoom04
- Člen | 75
ppar napsal(a):
jak jsem několikrát tady na foru psal, používám:
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*) https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301] RewriteRule ^$ /www/ [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !^/www/ RewriteRule ^(.*)$ /www/$1 </IfModule>
Děkuji za odpověď, ale ani toto neřeší můj problém. V tomto zápisu je navíc redirect z http na https, ale to mám řešený jinde. Opravdu mi jde o to, aby zápis domain.tld/stats nehledal ve složce www. Všechno ostatní tam hledat má.
Jednoduše.
Přijde návštěvník na adresu domain.tld a dostane se do adresáře /web. Zde se nachází soubor .htaccess, který vše přesměruje do složky /web/www. A já potřebuji, aby to zůstalo, jen byla výjimka pro soubor /stats, který se nachází ve /web/stats. :)
- Altimit
- Člen | 82
Ahoj,
ano nette hledá presenter stats a přitom je to složka, jenže ty musíš
říct nadstavené službě – v tomhle případě apache, že to nemá
posílat do nette, ale automaticky přeřadit url k složce.
např.
RewriteRule ^jobs/? /about-us/jobs.html [R=301,L]
v tvém případě to bude vypadat takhle
RewriteRule ^stats/? /stats/? [R=301,L]
Editoval Altimit (25. 3. 2019 8:39)