Cool URL – chybné routování nebo mod_rewrite

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

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
+
0
-

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
+
0
-

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)

Legáček
Člen | 16
+
0
-

Vyřešil jsem to YEAH!!! Stáhl jsem WampServer trochu poladil a všechno krásně jde ;)