.htaccess

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
veena
Člen | 98
+
0
-

V tutoriálu je prezentovaný htaccess s těmito podmínkami a pravidlem:

# front controller
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php [L]

Nejsem tedy žádný odborník na htaccess, ale proč jsou v tom pravidlu vyjmenované všechny ty přípony, když o tohle by se měla postarat ta podmínka !-f ne?

Jinak mi přidáváme ještě do podmínek:

RewriteCond %{REQUEST_FILENAME} !-l

pro symbolické linky

Petr Daňa
Člen | 109
+
0
-

Být tam ty přípony nemusí, ale jsou tam asi proto, aby při pokusu zavolat nějaký neexistující soubor s tou příponou to ohlásilo 404 Not Found a nezpracoval to index.php

David Grudl
Nette Core | 8166
+
0
-

Jak píše Petr, je to kvůli neexistujícím souborům.

Aplikace (tedy index.php) v případě neznámé adresy vygeneruje chybu 404 a zobrazí informační HTML stránku. To by bylo ale nevhodné, pokud by požadovanýn dokumentem byl (neexistující) obrázek nebo CSS styl – tam je záhodno poslat pouze hlavičku bez obsahu. Aplikace by sice mohla provádět detekci, jenže její zpracování je náročnější a pokud bych měl v šabloně (nebo v CSS stylu) špatné cesty k obrázkům, server by se zbytečně víc vytížil.

ad symbolické linky: mně to funguje tak, že i když cestu k souboru tvoří symbolický link, tak -f ho akceptuje. Nebo jsem to pochopil špatně?