Autor Zpráva
xciza
Profil
Ahoj,
sháním člověka, který má umístěné webové stránky či nějakou aplikaci napsanou v nette na hostingu od wedosu. Objednal jsem si u nich hosting nahrál webové stránky a jediné co mě nejde, jsou cool adresy. Hledal jsem všude možně ale bez úspěchu. Proto se ptám zda se někdo najde, kdo podobný problém řešil?

Díky
Jan Tvrdík
Profil
xciza:
Hledej na Nette fóru, řešilo se to tam už mockrát.
xciza
Profil
Hledal jsem, zkousel jsem ale asi ne spravnou kombinaci. Po pul dnu zkouseni jsem resignoval a zkusil napsat dotaz na foru ale zatim bez odezvy a tak jsem to zkusil tady. Pokud by si mel nejakou radu, budu jedine rad.
Jan Tvrdík
Profil
xciza:
Třeba forum.nette.org/cs/10375-nette-na-wedos-u-subdomeny#p91671 jsi četl? Těžko radit nějak konkrétně, když jsi neposlal, jak se ten problém vlastně projevuje.
xciza
Profil
jeste to podle toho zkusím ale moc šancí nedávám. Zkrátka mám např stránku http://www.xy.cz/?presenter=Front%3AContact a chtěl bych jen http://www.xy.cz/Contact
Jan Tvrdík
Profil
xciza:
forum.nette.org/cs/7658-vhodny-hosting-pro-nette-wedos#p58013
xciza
Profil
Z toho prvniho odkazu je ten htacess globální umísten kde pls?

EDIT: jeste by se asi hodila adresarova struktura:
app
   - AdminModul
   - FrontModul
   - config
   - bootsrap
css
images
js
libs
log
temp
.htacess
index.php
Jan Tvrdík
Profil
xciza:
Hádám o úroveň výš, ale těžko říct, hosting u wedos nepoužívám.
Micruss
Profil
.htacces mám já ve složce www a jinak moje struktura vypadá tak trochu jinak:

app
 - model
 - presenters
 - templates
 - bootstrap.php a další soubory jako config.neon
libs
www
 - img atd...
 - index.php
 - .htacess -> v tomto ht... mám hezké url
pak v základu mám index.php, který includuje index.php ze složky www      

ještě by bylo dobrý poslat jsem jak máš udělaný routování...
xciza
Profil
Tak jsem zkusil prekopat i tu strukturu na defaultní vycházející ze sandboxu. Čili teď mám strukturu:
www (kořenová složka od wedosu)
   -app
      - AdminModul
      - FrontModul
      - config
      - bootsrap.php
     - atd.
   -libs
   -www
      -css
      - images
      - htacess
     - index.php
      

v htacess na hezké url mám:
# 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 /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php [L]
    SetEnv NETTE_HTACCESS ok
</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>

a bootsrap:
<?php
use Nette\Application\Routers\Route,
    Nette\Application\Routers\RouteList,
    Nette\Application\Routers\SimpleRouter;

// Load Nette Framework or autoloader generated by Composer
require __DIR__ . '/../libs/autoload.php';


$configurator = new Nette\Config\Configurator;

// Enable Nette Debugger for error visualisation & logging
$configurator->setDebugMode(TRUE);
$configurator->enableDebugger(__DIR__ . '/../log');

// Specify folder for cache
$configurator->setTempDirectory(__DIR__ . '/../temp');

// Enable RobotLoader - this will load all classes automatically
$configurator->createRobotLoader()
    ->addDirectory(__DIR__)
    ->addDirectory(__DIR__ . '/../libs')
    ->register();

// Create Dependency Injection container from config.neon file
$configurator->addConfig(__DIR__ . '/config/config.neon');
$configurator->addConfig(__DIR__ . '/config/config.local.neon', $configurator::NONE); // none section
$container = $configurator->createContainer();


// Setup router using mod_rewrite detection
if (function_exists('apache_get_modules') && in_array('mod_rewrite', apache_get_modules())) {

    $container->router[] = new Route('index.php', 'Front:Projects:default', Route::ONE_WAY);

    $container->router[] = $adminRouter = new RouteList('Admin');
    $adminRouter[] = new Route('admin/<presenter>/<action>', 'Welcome:default');
    
    
    $container->router[] = $frontRouter = new RouteList('Front');
    $frontRouter[] = new Route('<presenter>/<action>[/<id>]', 'Projects:default');
    
} else {
    $container->router = new SimpleRouter('Front:Projects:default');
}


// Run the application!
//$container->application->run();
return $container;

Stále ale bez hezkých url
Micruss
Profil
a co zkusit zapnout laděnku a co tam hází za routování?
xciza
Profil
je tam:
Matched?         Class             Mask               Defaults                    Module        Request
yes            SimpleRouter               presenter =  Front:Projects                     Front:Contact:default
                                                       action = default
Micruss
Profil
to vypadá jako kdyby se použil simplerouter a tato podmínka

if (function_exists('apache_get_modules') && in_array('mod_rewrite', apache_get_modules())) {

hodí false, diný... zkusil bych po tom { dát třeba echo'ahoj'; jestli se to vypíše apodmínka se provede správně a nebo to hodí false a provede simplerouter
Jan Tvrdík
Profil
Micruss:
Viz [#6], je to tam vysvětlené.
xciza
Profil
Kdyz tam dam tu podminku pro fastCGI tak se me na strankach zobrazi uvitaci stranka ze sandboxu a ne moje stranky.
Jan Tvrdík
Profil
xciza:
A proč tam máš zároveň sandbox s uvítací stránkou a zároveň tvůj web?
xciza
Profil
No tak mel jsem to tam zatim vzdy kdyz jsem delal Front a Admin modul a vzdy stacilo v boostrapu routovani nastavit na front a admin a pohoda.

EDIT:
1) Kdyz odstranim vse z latte a HomePresenteru a dam do bootsrapu podmínku pro FastCGI tak mě naběhne pouze bílá stránka (což chápu když jsem vymazal tu úvodní stránku).
2) Za podmínku v pro FastCGI v bootstrapu jsem přidal zkušebně "echo 'ahoj';", které to vypíše v pořádku. Čili podmínka hodí true.
.htacess vypada takto:
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^$ /www/ [L]
       RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php [L]
    SetEnv NETTE_HTACCESS ok
    RewriteCond %{REQUEST_URI} !^/www/
    RewriteRule ^(.*)$ /www/$1
</IfModule>
Nějaké další nápady prosím?
Davex
Profil
Myslím, že si to zbytečně komplikuješ a obsah všech adresářů by se měl přesunout o úroveň výš. Jako to má [#9] Micruss, kde je app a libs na stejné úrovni jako www od hostingu.

-app
   - AdminModul
   - FrontModul
   - config
   - bootsrap.php
   - atd.
-libs
-www (kořenová složka od wedosu)
   - css
   - images
   - .htaccess
   - index.php

Pak by mělo to pravidlo [#10] fungovat.
xciza
Profil
Tak stále bez výsledku. Adresářová struktura předělána podle [#18] Davex. V .htacess:
# 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 /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php [L]
    SetEnv NETTE_HTACCESS ok
</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>
a v bootsreap:
<?php
use Nette\Application\Routers\Route,
    Nette\Application\Routers\RouteList,
    Nette\Application\Routers\SimpleRouter;
 
// Load Nette Framework or autoloader generated by Composer
require __DIR__ . '/../libs/autoload.php';
 
 
$configurator = new Nette\Config\Configurator;
 
// Enable Nette Debugger for error visualisation & logging
$configurator->setDebugMode(TRUE);
$configurator->enableDebugger(__DIR__ . '/../log');
 
// Specify folder for cache
$configurator->setTempDirectory(__DIR__ . '/../temp');
 
// Enable RobotLoader - this will load all classes automatically
$configurator->createRobotLoader()
    ->addDirectory(__DIR__)
    ->addDirectory(__DIR__ . '/../libs')
    ->register();
 
// Create Dependency Injection container from config.neon file
$configurator->addConfig(__DIR__ . '/config/config.neon');
$configurator->addConfig(__DIR__ . '/config/config.local.neon', $configurator::NONE); // none section
$container = $configurator->createContainer();
 
 
// Setup router using mod_rewrite detection
if (isset($_SERVER['NETTE_HTACCESS'])) { 
 
    $container->router[] = new Route('index.php', 'Front:Projects:default', Route::ONE_WAY);
 
    $container->router[] = $adminRouter = new RouteList('Admin');
    $adminRouter[] = new Route('admin/<presenter>/<action>', 'Welcome:default');
    
    
    $container->router[] = $frontRouter = new RouteList('Front');
    $frontRouter[] = new Route('<presenter>/<action>[/<id>]', 'Projects:default');
    
} else {
    $container->router = new SimpleRouter('Front:Projects:default');
}
 
 
// Run the application!
//$container->application->run();
return $container;

Už nevím co mám dál zkusit a tak nabízím i odměnu pro toho kdo mě to vyřeší.
Str4wberry
Profil
V souboru .htaccess u webu běžícího v Nette u Wedosu mám oproti vám zakomentováno „Options -Indexes“, „RewriteBase /“ a celé „<IfModule mod_include.c>“. Už si přesně nepamatuji proč, ale měl jsem se zprovozněním kdysi také problém a takhle to funguje (ale detailněji jsem to nezkoumal).
xciza
Profil
Vyzkoušeno, ale také bez výsledku. Ještě navíc když v bootstrapu dám podmínku pro FastCGI tak mě to vyhodí úvodní stránku sandboxu. Nějaké další nápady?
Jan Tvrdík
Profil
xciza:
Nějaké další nápady?
1) Všechno smazat a zkusit tam rozběhat skeleton.
2) Zeptat se na Nette fóru.
xciza
Profil
Jan Tvrdík:
1) Všechno smazat a zkusit tam rozběhat skeleton.

Najdu někde nějaký nebo tím myslíš jen nahrát čistý nette a sandbox?
Jan Tvrdík
Profil
xciza:
čistý nette a sandbox
Ano, zapomněl jsem, že skeleton se před několika lety přejmenoval na sandbox.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: