Quickstart a neustale 404
- Mesiah
- Člen | 240
Dobrý den,
prosím Vás, neustále se peru s quickstartem, přesněji když chci přidat
nový úkol do todolistu, tak mi server odpovídá 404.
Rewrite mam na serveru povoleny a mám adresářovou strukturu:
www/
- todo/
+ app/
+ document_root/
+ libs/
+ tests/
+ readme.txt
Soubot .htacess ve složce document_root/ obsahuje:
# disable directory listing
Options -Indexes
# configure PHP
# <IfModule mod_php5.c>
# php_flag magic_quotes_gpc off
# php_flag register_globals off
# php_flag zend.ze1_compatibility_mode off
# </IfModule>
# mod_rewrite
<IfModule mod_rewrite.c>
RewriteEngine On
# RewriteBase /
RewriteBase /todo/document_root/
# 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>
Ale pořád mám 404, můžete mi poradit proč a co s tím?
- Mesiah
- Člen | 240
Bootstrap jsem upravoval jen minimálně, vlastně jsem jen přidal
připojení dibi a routy, které jsou v tom tutorialu (ty, které jsou na
stránce „Dokončení základní aplikace“).
Kazdopádně přidávám výpis bootstrap.php
// Step 1: Load Nette Framework
// this allows load Nette Framework classes automatically so that
// you don't have to litter your code with 'require' statements
require LIBS_DIR . '/Nette/loader.php';
// Step 2: Configure environment
// 2a) enable Debug for better exception and error visualisation
Debug::enable();
// 2b) load configuration from config.ini file
Environment::loadConfig();
// Step 3: Configure application
// 3a) get and setup a front controller
$application = Environment::getApplication();
$application->errorPresenter = 'Error';
//$application->catchExceptions = TRUE;
dibi::connect(Environment::getConfig('database'));
// Step 4: Setup application router
$router = $application->getRouter();
$router[] = new Route('index.php', array(
'presenter' => 'Todo',
'action' => 'default',
), Route::ONE_WAY);
$router[] = new Route('<presenter>/<action>', array(
'presenter' => 'Todo',
'action' => 'show',
));
/*
$router[] = new Route('index.php', array(
'presenter' => 'Todo',
'action' => 'show', ), Route::ONE_WAY);
$router[] = new Route('<presenter>/<action>/<id>', array(
'presenter' => 'Todo',
'action' => 'show',
'id' => NULL,
));
*/
// Step 5: Run the application!
$application->run();
Napadlo mě, jestli třeba nemůžu mít nějak špatně nastaveny mod_rewrite..?
- doomed
- Člen | 17
Mesiah napsal(a):
Bootstrap jsem upravoval jen minimálně, vlastně jsem jen přidal připojení dibi a routy, které jsou v tom tutorialu (ty, které jsou na stránce „Dokončení základní aplikace“).
Kazdopádně přidávám výpis bootstrap.php// Step 1: Load Nette Framework // this allows load Nette Framework classes automatically so that // you don't have to litter your code with 'require' statements require LIBS_DIR . '/Nette/loader.php'; // Step 2: Configure environment // 2a) enable Debug for better exception and error visualisation Debug::enable(); // 2b) load configuration from config.ini file Environment::loadConfig(); // Step 3: Configure application // 3a) get and setup a front controller $application = Environment::getApplication(); $application->errorPresenter = 'Error'; //$application->catchExceptions = TRUE; dibi::connect(Environment::getConfig('database')); // Step 4: Setup application router $router = $application->getRouter(); $router[] = new Route('index.php', array( 'presenter' => 'Todo', 'action' => 'default', ), Route::ONE_WAY); $router[] = new Route('<presenter>/<action>', array( 'presenter' => 'Todo', 'action' => 'show', )); /* $router[] = new Route('index.php', array( 'presenter' => 'Todo', 'action' => 'show', ), Route::ONE_WAY); $router[] = new Route('<presenter>/<action>/<id>', array( 'presenter' => 'Todo', 'action' => 'show', 'id' => NULL, )); */ // Step 5: Run the application! $application->run();
Napadlo mě, jestli třeba nemůžu mít nějak špatně nastaveny mod_rewrite..?
V první routě máš s největší pravděpodobností chybu. Máš tam ‚action‘ ⇒ ‚default‘ a mělo by být ‚action‘ ⇒ ‚show‘ pokud jsi postupoval přesně podle quickstartu. View default totiž v TodolistPresenteru není.
- Mesiah
- Člen | 240
Bohužel tím to není. Zkusil jsem to změnit a smazat temp, ale pořád
404.
Ani tím Todo a Todolist by to nemělo být, mám presenter TodoPresenter
(namísto TodolistPresenter).
Nějaké jiné nápady? :(
BTW: můžu nějak otestovat, zda mi jede rewrite správně?
Editoval Mesiah (23. 7. 2010 13:02)
- doomed
- Člen | 17
Jednoduchej test přesměrování http://www.jakpsatweb.cz/…rewrite.html
Editoval doomed (23. 7. 2010 13:09)
- Mesiah
- Člen | 240
hmm, tak nejspíš mám problém s mod_rewrite, nějak mi nefrčí… :(
zkusil jsem do /var/www/ vytvořit soubor pokus.html a také tam přidat
.htaccess s obsahem
Redirect /pokus.html http://www.seznam.cz/
ale bohužel, nic se nestalo, žádné přesměrování… takže asi v tomhle je problém, otázka je jak to můžu vyřešit..? :(
- Mesiah
- Člen | 240
tak jsem preinstaloval system a zkusil to znovu. aplikace naběhla ok, ale
pak přišla 404ka při pokusu vložit nový úkol…
to mě přejeď… :(
jinak httpd.conf je prázdný, takže nemá smysl jej sem postovat, ale třeba
Vám něco řekne apache2.conf
Už fakt nevím kde je chyba, že by poradil někdo kdo zkušenější? :)
- hippy
- Člen | 1
Pokud se Vám stále nepodařilo rozběhat mod_rewrite, zkuste postupovat
podle tohoto ;)
http://forum.ubuntu.cz/index.php?…
- warp
- Člen | 26
Mám úplně stejný problém až na to, že když jsem ve složce ..\EasyPHP5.2.10\apache\conf\ v souboru httpd.conf přepsal postupně úplně všechny None (u Override) na All a .htacess upravil do podoby jak je v prvním postu v tomto threadu, stále mi po různých kombinacích restartů a mazání tempu vyskakuje 404 a to nejen u přidání nového úkolu, ale u všech aktivit.
//edit: vyřešeno spuštěním easyphp jako správce (win7)
Editoval warp (7. 11. 2010 22:04)