| Autor | Zpráva | ||
|---|---|---|---|
| David_ Profil * |
#1 · Zasláno: 18. 8. 2014, 01:24:02 · Upravil/a: David_
Ahoj, mám zde drobný problém, nepoužívám žádný framework, ale pro pořaděk jsem udělal následující MVC strukturu:
root->app: -/model -/viewer -/controller -/www -index.php -/img je to podobné jako v Nette.. V rootu mám .htaccess: RewriteEngine on RewriteRule ^$ app/www/ [L] který nastaví defaultní cestu app/www/index.php to vše funguje i když nevím zda je to spravný způsob jelikož když v souboru dám cestu k obrázku, který je umístěn v app/img/obrazek.png a udelam img/obrazek.png tak cesta je nesprávná, protože cesta má být app/img/obrazek.png, proč když přenastavím vychozí adresář tak přesto cesty k souboru jsou od rootu? Jak to vyřešit? Příde mi to divné odkazovat na soubor do typu týdle složky.. * app/www/img/obrazek.png |
||
| Jozin Profil |
#2 · Zasláno: 18. 8. 2014, 08:59:22
Zdravím,
když už tu píšeš o Nette, proč se nenakouknout do jejich htaccess souboru a poučit se: RewriteEngine on
# prevence proti otevreni souboru, co zacinaji teckou
RewriteRule /\.|^\. - [F]
# pokud neni request nejaky soubor nebo složka, přesměruj na app/www/index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ app/www/index.php [L]
# a zde pro tebe nejpodstatnejsi cast, vsechny requesty presmerovat do app/www
RewriteRule ^$ app/www/ [L]
RewriteRule (.*) app/www/$1 [L]Jedna rada na závěr, pokud se snažíš napsat si framework dle nějakého jiného, studuj ho do detailu, zkopírovat stromovou strukturu není dostatečné. Ještě poznámka, Nette počítá s tím, že root webu bude ve složce www, proto nemusí řešit tvé "app/www", ne na všech serverech je to ovšem možné a proto se používá ta finta na konci htaccess, co jsem ti napsal. |
||
| David_ Profil * |
#3 · Zasláno: 18. 8. 2014, 13:11:14
problém nastává při RewriteRule (.*) app/www/$1 [L] když tam je tak dostanu 500-stovku chybu..
|
||
| Radek9 Profil |
#4 · Zasláno: 18. 8. 2014, 13:35:34
David:
Pravděpodobně tam vzniká smyčka. To se dá vyřešit jednou podmínkou, kterou umístíš před RewriteRule:
RewriteCond %{ENV:REDIRECT_STATUS} ^$ |
||
|
Časová prodleva: 12 let
|
|||
0