Účel a odstranění automaticky generovaného GET parametru v URL
- kastanekdavid
- Člen | 39
Ahoj.
Pokud přistoupím na určité adresy ve své aplikaci, vygeneruje se mi do
odkazu tento string: ?www%2Ffront%2F=
. Vypadá dost blbě, když je
člověk na této adrese:
http://localhost/demoapp/front/?www%2Ffront%2F=
. Lépe rozhodně
vypadá toto: http://localhost/demoapp/front/
Můj router vypadá takto:
<?php
namespace App\Factories;
use Nette,
Nette\Application\Routers\RouteList,
Nette\Application\Routers\Route,
Nette\Application\Routers\SimpleRouter;
/**
* Router factory
*/
class RouterFactory
{
/**
* @return \Nette\Application\IRouter
*/
public function createRouter()
{
$router = new RouteList();
$router[] = new Route('[<locale=cs cs|en>/]front/<presenter>/<action>[/<id>]', array(
'module' => 'Front',
'presenter' => 'Index',
'action' => 'summary',
'id' => NULL,
));
$router[] = new Route('[<locale=cs cs|en>/]<presenter>/<action>[/<id>]', array(
'presenter' => 'Index',
'action' => 'default',
'id' => NULL,
));
return $router;
}
}
?>
Registrace routeru v config.neon:
services:
- App\Factories\RouterFactory
router: @App\Factories\RouterFactory::createRouter
Netušíte někdo proč se toto děje, popř. jak se toho zbavit? Dík moc.
Editoval kastanekdavid (15. 10. 2014 15:31)
- kastanekdavid
- Člen | 39
Normálně napíšu do prohlížeče localhost/app/front
a Nette
podle routerFactory přesměruje na Front:Index:Summary, všechno automaticky.
Akorát mi přidá do odkazu ?www%2Ffront%2F=
. Když napíšu do
prohlížeče např. localhost/app/front/index/service
, tak mi tam
zas dogeneruje ?www%2Ffront%2Findex%2Fservice=
, protože to
neodpovídá default routě. Žádný speciality nedělám, nechávám Nette
2.2, ať to všechno dělá samo. Absolutně nechápu, oč běží :-O
Editoval kastanekdavid (15. 10. 2014 15:28)
- kastanekdavid
- Člen | 39
Díky! Problém byl v tom, že jsem měl .htaccess v rootu projektu a v něm jsem redirektoval do /www, kde byl .htaccess prázdný. Do tohoto prázdnýho jsem teda dodal RewriteBase a už to šlape.