Cool URL – chybné routování nebo mod_rewrite
- Legáček
- Člen | 16
Zdravím,
verze Nette – Verze 2.0 Alpha 2 pro PHP 5.2, poprosil bych o radu
začátečníkovi, který se tu už 3h snaží o COOL adresu a kvůli ní
nedokáže udělat ani blbý menu. Mod_rewrite zapnuté (kontrolováno přez
layer pomocí phpinfo();) v httpd.conf několikrát překontrolované načtení
modulu a zapnuté AllowOveride All. Zde mám .htacces ve složce /WWW
<IfModule mod_rewrite.c>
RewriteEngine On
# RewriteBase /
# 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>
Přepínání v menu mám jen <a href=„{link contact}“>Contact</a> například kde ve složce v Templates mám Homepage kde jsou soubory contact.latte i default.latte. ZDE routování
$application->onStartup[] = function() use ($application) {
$router = $application->getRouter();
$router[] = new Route('index.php', 'Homepage:default', Route::ONE_WAY);
$router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');
};
Když jsem zkoušel Tolls – Checker . Tak mi to hází upozornění na .htaccess file protection i .htaccess mod_rewrite disabled. Nechápu :( Používám easyPHP. Děkuji za rady…
- Legáček
- Člen | 16
Takže už se s tím trápím celý víkend =D Už se tomu jen směji.. Netušim co dělám špatně zkoušel jsem do boostrap.php dát
$request = Environment::getHttpRequest();
echo $request->uri->scriptPath;
jestli to náhodou není špatným RewriteBase / , ale vypisuje to správnou cestu /NetteFramework/www/ (zde mám index.php), pak jsem ještě zkoušel simpleRoute –
$application->onStartup[] = function() use ($application) {
$router = $application->getRouter();
$router[] = new Route('index.php', 'Homepage:default', Route::ONE_WAY);
$router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');
};
if (function_exists('apache_get_modules') && in_array('mod_rewrite', apache_get_modules())) {
echo "funguje - je zapnuté mod_rewrite i apache_get_modules";
} else {
echo "nefunguje";
}
Nic nefunguje někdo nějaký nápad? … čtu fórum jak blásen a už mě nic nenapadá :(
- erzzo
- Člen | 49
s týmto istým problémom tiež bojujem. Niekto kto by to vyriešil ? :) moderewrite na Apache/2.2.16 beží. Php verzia 5.3.3–1ubuntu9.3. .htaccess v document roote:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /TodoList/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>
Kedže radili „upravit řádek AllowOverride None na AllowOverride All“ v httpd.conf, ktorý mam prazdny a v apache2.conf takýto riadok nieje. Kde to mám zmeniť ?
Editoval erzzo (18. 4. 2011 0:08)