Nette 2.1.0 na PHP 5.4.4 vyhazuje „Not Found“
- miker
- Člen | 8
Ahoj,
nainstaloval jsem na nový server (Apache/2.2.22 (Debian)) nové Nette (2.1.0) a
nefunguje mi žádná jiná adresa než domácí (server.cz/myapp)- při
jakémkoliv pokusu o zobrazení např. server.cz/myapp/sign/in (nebo třeba
server.cz/myapp/testprezenter) mi to vyhodí hlášku:
Not Found
The requested URL server.cz/myapp/sign/in was not found on this server.
Předpokládám, že to bude routováním, ale nevím jak to rozchodit. Používám jenom defaultní routy ze sandboxu.
Díky za reakce!
- Pavel Macháň
- Člen | 282
miker napsal(a):
Ahoj,
nainstaloval jsem na nový server (Apache/2.2.22 (Debian)) nové Nette (2.1.0) a nefunguje mi žádná jiná adresa než domácí (server.cz/myapp)- při jakémkoliv pokusu o zobrazení např. server.cz/myapp/sign/in (nebo třeba server.cz/myapp/testprezenter) mi to vyhodí hlášku:Not Found
The requested URL server.cz/myapp/sign/in was not found on this server.Předpokládám, že to bude routováním, ale nevím jak to rozchodit. Používám jenom defaultní routy ze sandboxu.
Díky za reakce!
Nemáš zapnutý mod_rewrite
- miker
- Člen | 8
To jsem zapomněl zmínit: mod_rewrite byla první náprava, na kterou jsem narazil na netu, takže jsem to ZAPNUL, ale pořád nic (server restartován, cache promazána). Nette Requirements Checker hlásí vše v pořádku, přesto adresy nefungují.
EIFEL napsal(a):
miker napsal(a):
Ahoj,
nainstaloval jsem na nový server (Apache/2.2.22 (Debian)) nové Nette (2.1.0) a nefunguje mi žádná jiná adresa než domácí (server.cz/myapp)- při jakémkoliv pokusu o zobrazení např. server.cz/myapp/sign/in (nebo třeba server.cz/myapp/testprezenter) mi to vyhodí hlášku:Not Found
The requested URL server.cz/myapp/sign/in was not found on this server.Předpokládám, že to bude routováním, ale nevím jak to rozchodit. Používám jenom defaultní routy ze sandboxu.
Díky za reakce!
Nemáš zapnutý mod_rewrite
- miker
- Člen | 8
Ano, mám – v adresářích „xx.cz/myapp“:
Order Allow,Deny
Deny from all
i „xx.cz/myapp/www“:
# Apache configuration file (see httpd.apache.org/docs/current/mod/quickreference.html)
# disable directory listing
Options -Indexes
# enable cool URL
<IfModule mod_rewrite.c>
RewriteEngine On
# RewriteBase /
# prevents files starting with dot to be viewed by browser
RewriteRule /\.|^\. - [F]
# 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]
</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>
akadlec napsal(a):
Máš tam htaccess soubor?
- miker
- Člen | 8
vypíše „POKUS“, čili to funguje. Ona funguje domácí stránka bez problémů, ale jakmile naviguju na jakoukoliv „cool adresu“, tak tak hodí 404
akadlec napsal(a):
No každopádně se ti to chová tak jako by se to vůbec nerevritovalo, todíž se ti to do nette ani nedostane. Když si dáš do indexu die(‚POKUS‘); udělá to co?
- miker
- Člen | 8
AllowOverride povolené mám, teda aspoň si to myslím:
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
Odkomentování RewriteBase bez efektu, bohužel.
Jen pro info: výše uvedený problém se mi stával i u aplikací se starším Nette, což bylo ovšem vyřešeno tím „AllowOverride All“. Bohužel novější Nette to neřeší.
Majkl578 napsal(a):
- Máš povolené AllowOverride pro htaccess?
- Zkus nastavit RewriteBase.
- Jan Tvrdík
- Nette guru | 2595
Verze Nette je irelevantní, tohle je čistě záležitost konfigurace serveru.
- Tomáš Votruba
- Moderator | 1114
@miker: Je také důležité nadřazené
AllowOveride
, ne jen u tvého projektu. Doporučuji vyzkoušet http://xmodulo.com/…-ubuntu.html, zejména třetí příkaz
(modré).
- miker
- Člen | 8
zdá se mi to stejné jako to, co jsem nastavoval, ale projdu to ještě jednou, díky
Tomáš Votruba napsal(a):
@miker: Je také důležité nadřazené
AllowOveride
, ne jen u tvého projektu. Doporučuji vyzkoušet http://xmodulo.com/…-ubuntu.html, zejména třetí příkaz (modré).