Nette na ispconfig hledá neexistující presenter

před 4 dny

Rndoom04
Člen | 25
+
0
-

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. :)

před 4 dny

CZechBoY
Člen | 3298
+
0
-

Pošli jakou chybovou hlášku dostáváš, taky doplň jestli to je chyba od Nette nebo od Apache.

před 4 dny

Rndoom04
Člen | 25
+
0
-

Z nette.. :)

Nette\Application\BadRequestException #404
Cannot load presenter 'Stats', class 'App\Presenters\StatsPresenter' was not found. search►
...

před 4 dny

Gappa
Člen | 56
+
0
-

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. 6:42)

před 4 dny

kamil_v
Člen | 19
+
0
-

Kde máš Document_root? Nehledá se adresář stats ve /www/, ačkoliv je nyní ve / ?
Neměl bys na disku mít /www/stats ?

před 4 dny

CZechBoY
Člen | 3298
+
0
-

Zkus to takhle

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

před 4 dny

Rndoom04
Člen | 25
+
0
-

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. 12:34)

před 4 dny

kamil_v
Člen | 19
+
0
-
<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.

před 3 dny

Rndoom04
Člen | 25
+
0
-

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). :/

před 3 dny

David Grudl
Nette Core | 6827
+
0
-

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.

před 3 dny

Rndoom04
Člen | 25
+
0
-

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.

před 3 dny

ppar
Backer | 195
+
0
-

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>

před 3 dny

Rndoom04
Člen | 25
+
0
-

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. :)