Routování na statických stránkách
- spiider
- Člen | 162
Ahoj, sem začátečník v nette a zkusil jsem si vytvořit stránky podle tohoto návodu https://doc.nette.org/cs/quickstart ale nějak nemohu přijít na to jak udělat aby mi to nacitalo index.php po zadani localhost/test1/ a aby to nechtelo locatlhost/test1/document_root
Taky bych se chtel zeptat jak udělat aby když kliknu v menu třeba na Kontakt aby adresa byla localhost/test1/kontakt/
Adresářovou strukturu mám i routy mám stejně jako v tom příkladu.
Díky moc za pomoc
- Petr Mašát
- Člen | 101
Ahoj,
osobně to řeším pomocí .htaccess v němž mám
RewriteBase /document_root/
a tím změním odkud se má brát root webu.
- Petr Mašát
- Člen | 101
Ten .htaccess by jsi měl umístit úplně do nejhornějšího adresáře. Apache si pro něj poté šáhne a automaticky jeho nastavení probublá i do všech podadresářů (kde případně můžeš jeho nastavení změnit další .htaccess souborem, což je vhodné zejména pro adresáře app, libs kam by zvenku nemělo být vidět).
Posílám svůj .htaccess, snad je použitelný i pro tvůj projekt : )
#Options +FollowSymlinks
RewriteEngine on
RewriteBase /document_root/
# configure PHP
php_flag magic_quotes_gpc off
php_flag register_globals off
# front controller
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(css|pdf|ico|js|gif|jpg|png|rar|zip|tar\.gz)$ index.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)\.(css|pdf|ico|js|gif|jpg|png|rar|zip|tar\.gz)$ $1\.$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !((.)\.(css|pdf|ico|js|gif|jpg|png|rar|zip|tar\.gz|html))$ /index.html [R=301,L]
Myslím že jsem ho kdysi získal také někde tady na fóru, tak snad je ještě v pořádku a nic v něm nechybí.
- Petr Mašát
- Člen | 101
ups, odmaž pls poslední část
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !((.)\.(css|pdf|ico|js|gif|jpg|png|rar|zip|tar\.gz|html))$ /index.html [R=301,L]
ta je tam kvůli mému redakčnímu systému, u nehož mám napsané i své routování. Poté tě to nebude přesměřovávat na ten index.html.
- Petr Mašát
- Člen | 101
Můžeš to pls celé zazipovat a někam umístit? Stáhnu, rozipuji, zkouknu a buďto já a nebo někdo jiný poradí : )
- Petr Mašát
- Člen | 101
Hoď to třeba na ulozto.cz a pošli link. Aby na to mohli případně kouknout i jiní zájemnci.
- spiider
- Člen | 162
tak je to ke stažení na http://www.ulozto.cz/…1/elmos2-zip tak prosím mrkněte na to někdo a prosím podívejte se i na to routování jak jsem psal, díky moc za rady
- Petr Mašát
- Člen | 101
Hoj,
upravil jsem ti hnedka první .htaccess na
#Options +FollowSymlinks
RewriteEngine on
RewriteBase /
# configure PHP
php_flag magic_quotes_gpc off
php_flag register_globals off
RewriteRule (.*)$ document_root/$1
plus hodil jsem upravenou verzi na ulozto.cz – nyní již se document_root nevypisuje.
Do budoucna by se ti mohlo hodit: http://www.jakpsatweb.cz/…rewrite.html
Editoval tachyon (2. 1. 2011 17:36)
- Petr Mašát
- Člen | 101
Jj mě to šlo v pořádku. Funguje ti mod_rewrite? Případně si ho budeš muset v nastavení apache povolit. Cvičně jsem to hodil i na jeden svůj hosting a funguje to tam bez problému.
- spiider
- Člen | 162
Neporadí někdo aspoň jak mám mít nastavené routy abych měl adresu
např. www.test.cz/kontakt nebo www.test.cz/noviky apod.
Jsou to statické stránky a presentery se jmenují KontaktPresenter a
NovinkyPresenter
Routy mám jako v ukázkovém příkladu:
$router[] = new Route(‚index.php‘, array(
‚presenter‘ ⇒ ‚HomePage‘,
‚action‘ ⇒ ‚default‘,
), Route::ONE_WAY);
$router[] = new Route(‚<presenter>/<action>/<id>‘,
array(
‚presenter‘ ⇒ ‚HomePage‘,
‚action‘ ⇒ ‚default‘,
‚id‘ ⇒ NULL,
));
- Petr Motejlek
- Člen | 293
spiider napsal(a):
Neporadí někdo aspoň jak mám mít nastavené routy abych měl adresu např. www.test.cz/kontakt nebo…
No a to ti nefunguje, nebo v čem je problém? ;) Samotné to přirozeně stačit nebude. Je potřeba ještě .htaccess s nastaveným přesměrováním všeho na index.php.